VSCode远程连接服务器(SSH免密登录)

前文

        连接远程服务器的方式众多,本文将介绍基于VS Code的SSH免密登录方法。在开始SSH远程链接以前,您需要完成以下步骤:

1.Windows配置SSH:

1.以Windows平台为例,您需要在cmd终端(Win+R输入cmd)输入:

ssh -v

如果出现信息即代表Windows端的SSH配置完成。

2.Windows生成公钥的方法:

ssh-keygen

如果您可以在C:\Users\您的用户名\.ssh内看到id_rsaid_rsa.pub文件;

请用记事本打开id_rsa.pub,尔后Ctrl+A Ctrl+C,此时剪贴板的内容即为Windows公钥。

VSCode远程连接服务器(SSH免密登录)_第1张图片请保护好您的私钥!

2.VS Code端环境配置:

1.添加扩展:Remote Development

2. Remote Development含有三个拓展包,稍后我们需要插件Remote - SSH

如图所示:

VSCode远程连接服务器(SSH免密登录)_第2张图片

3.服务器端配置:

1.检查服务器端是否安装了SSH服务:

ps -e | grep sshd

2.请明确您的服务器IP地址:

1.以云服务器CVM为例,您的IP地址就是您的公网IP,需要您在云服务官网控制中心获取。

2.以本地虚拟机为例,您需要输入以下命令获得本地IP地址。

(博主使用CVM,本地虚拟机远程链接未经实践验证)

ip addr

正文: 

首次登录设置

1.请单击VS Code首页左下角的远程链接符号

VSCode远程连接服务器(SSH免密登录)_第3张图片

 2.选择:Connect Current Window to Host

VSCode远程连接服务器(SSH免密登录)_第4张图片

 3.请输入用户名和IP地址(用户名以root为例):

格式如下: 

ssh root@您的ip地址

3.0 选择第一项:C:\User\hrwei\.ssh\config;

3.1 选择Linux - Continue - 输入密码

3.2 首次登录需要输入您的服务器SSH密码,如果忘记,您可以在服务器官网重置密码。

3.3 如果您能在VS Code终端看到服务器并可进行命令操作,则证明远程连接成功。

 常见问题1(已解决):

VSCode远程连接服务器报错:Could not establish connection to “您的ip地址”

下方的报错信息提示:过程试图写入的管道不存在

此时您需要:扩展-Remote SSH-右键Extensions Settings(扩展设置)

VSCode远程连接服务器(SSH免密登录)_第5张图片

 请在此键入您的config路径

SSH免密登录:

每次连接服务器,都需要输入SSH密码,极其不方便,因此我们采用SSH免密登录。

在服务器端(Linux)的操作:

cd ~
ls -a

如图所示:

请确保您拥有.ssh文件夹,没有请在家目录下新建ssh文件夹:

mkdir .ssh

 接着,请输入如下命令:

vim ~/.ssh/authorized_keys

请 按i进入 编辑模式-在Windows端 CtrlA&Ctrl+C 复制id_rsa.pub里的内容,在Vim里shift+insert 粘贴Windows公钥至 ~/.ssh/authorized_keys 内,按 ESC,输入 :wq 退出。

此时,重启VS Code,点击左下角远程连接符号or在侧边栏访问远程资源管理器,选中您需要访问的服务器的ip地址。连接成功后,请在终端内进行命令的操作。

常见问题2(已解决):

每次重启VS Code后,软件会自动连接服务器。但我们有时并不需要访问远程服务器。

这时,您需要再次点击首页左下角远程连接符号,选中 关闭远程连接 即可。

VSCode远程连接服务器(SSH免密登录)_第6张图片

拓展阅读:

关于SSH免密登录的原理:

VSCode远程连接服务器(SSH免密登录)_第7张图片

1.在客户端(本文即Windows)生成了公钥(id_rsa.pub里的内容),并将此公钥拷贝给服务器(我的远程CVM)。此时客户端和远程服务器都存有一份相同的公钥。

 2.客户端携带公钥发起登录请求,服务器端在authorized_keys里寻找你上传的公钥,尔后与客户端携带的公钥进行比对。一旦比对成功,服务器会随机生成一段用公钥加密过的字符串对客户端进行质询。

3.客户端收到服务端发来的公钥加密随机字符串,会用自己的私钥(id_rsa)解密,再将随机字符串返回给服务器。远程服务器对比返回的字符串是否与自己本地生成的随机字符串一致。如果一致,则证明用户可信,允许直接访问Shell,不再要求输入登录密码。

如何联系我?[email protected]

你可能感兴趣的:(Linux,安装教程,计算机理论,服务器,ssh,linux)