SSH密钥认证登陆流程(Vscode连接到远程)

目录

    • 前言
    • 连接远程步骤
      • [1. 下载工具包wsCli到本地机器](#1. 下载工具包wsCli到本地机器)
      • [2. 本地机器上生成ssh密钥](#2. 本地机器上生成ssh密钥)
      • [3. 在服务器上安装公钥](#3. 在服务器上安装公钥)
      • [4. vscode连接到远程](#4. vscode连接到远程)
    • 参考资料

前言

SSH(Secure Shell)是一种用于远程登录和安全传输数据的网络协议。它提供了两种主要的远程连接方式:

  1. 密码认证:使用用户名和密码进行身份验证。在这种方式下,用户需要提供正确的用户名和密码才能成功连接到远程主机。这是最常见的认证方式,但安全性较低,因为密码可能会被猜测或通过网络截获。

  2. 公钥认证:使用公钥和私钥进行身份验证。在这种方式下,用户需要生成一对密钥,包括公钥和私钥。用户将公钥上传到远程主机上,而私钥保留在本地。当用户尝试连接到远程主机时,远程主机会使用存储的公钥进行验证。如果公钥验证成功,用户将被授权访问。公钥认证提供了更高的安全性,因为私钥通常比密码更难以猜测。

这两种方式可以根据用户的需求和安全要求进行选择。公钥认证通常被认为是更安全和推荐的方式,特别是在需要远程访问的生产环境中。

连接远程步骤

1. 下载工具包wsCli到本地机器

下载工具包到本地机器,解压后,把相应的wsCli程序放在系统目录下(比如windows是C:\Windows下,linux/macOS放在/usr/local/bin下)。

也可以放在任意目录下,但是需要将这目录添加到环境变量中(WIN+R输入:control userpasswords回车,点击更改我的环境变量):

添加环境变量,在用户变量->Path中添加,到wsCli文件的上一级目录:

2. 本地机器上生成ssh密钥

在命令行执行ssh-keygen来创建密钥对,默认情况下,会生成一个私钥(id_rsa)和一个公钥(id_rsa.pub)。私钥通常不建议随意发送给他人,因为它包含敏感信息。

3. 在服务器上安装公钥

拷贝id_rsa.pub中的公钥,并添加到authorized_keys中:

shell 复制代码
mkdir -p ~/.ssh
# {YOUR_PUB_KEY}是拷贝的公钥,以ssh-rsa开头
echo "{YOUR_PUB_KEY}" >> ~/.ssh/authorized_keys

如此便完成了公钥的安装。 此外,为了确保连接成功,输入如下指令以保证以下文件权限正确:

shell 复制代码
chmod 600 authorized_keys 
chmod 700 ~/.ssh

在终端详情页拷贝ssh命令,即可在本地terminal连接到远程(如果连接不上可以重启一下电脑试试)。

4. vscode连接到远程

在vscode上进行远程连接,需要在服务器上安装与本地相同版本的vscode

1.在本地vscode中安装插件 Remote-SSH

2.本地下载vscode安装包

在vscode的帮助->关于中找到commitID

复制下面这个链接下载安装包:

shell 复制代码
# ${COMMIT_ID}换成自己的commitID
https://update.code.visualstudio.com/commit:${COMMIT_ID}/server-linux-x64/stable

然后得到下面这个压缩包:

3.在服务器上传vscode

在服务器中创建.vscode-server/bin文件夹,并把压缩包上传:

shell 复制代码
mkdir -p ~/.vscode-server/bin
cd ~/.vscode-server/bin
# 上传压缩包并解压,放到以commitID命名的文件夹下
# ${COMMIT_ID}替换成自己的commitID
tar -zxf vscode-server-linux-x64.tar.gz
mv vscode-server-linux-x64/* ${COMMIT_ID}

最后${COMMIT_ID}文件夹下为以下文件,删除其他没用的文件。
4.将ssh命令粘贴到连接命令中

得到一个config文件,如果windows系统,需要将wscli修改成本地绝对路径:

然后点击+号连接到远程。

参考资料

解决 Windows 端 VS Code "无法与 "..." 建立连接:XHR failed." 问题

相关推荐
我在看世界1 小时前
家里vscode连公司内网vscede
vscode·ssh
还是奇怪2 小时前
Linux - 安全排查 2
linux·运维·安全
牛奶咖啡132 小时前
Linux系统的常用操作命令——文件远程传输、文件编辑、软件安装的四种方式
运维·服务器·软件安装·linux云计算·scp文件远程传输·vi文件编辑·设置yum的阿里云源
难受啊马飞2.02 小时前
如何判断 AI 将优先自动化哪些任务?
运维·人工智能·ai·语言模型·程序员·大模型·大模型学习
会又不会2 小时前
Jenkins-Email Extension 插件插件
运维·jenkins
电脑能手3 小时前
[保姆级教程] 解决不同局域网电脑无法SSH的问题
运维·ssh·电脑
czhc11400756634 小时前
Linux 76 rsync
linux·运维·python
悠悠小茉莉4 小时前
Win11 安装 Visual Studio(保姆教程 - 更新至2025.07)
c++·ide·vscode·python·visualstudio·visual studio
你不知道我是谁?5 小时前
负载均衡--四层、七层负载均衡的区别
运维·服务器·负载均衡
SZ1701102315 小时前
华为云 银河麒麟 vscode远程连接
ide·vscode·华为云