VSCode Remote-ssh 免密登录Linux服务器
Remote-ssh 插件实现免密登录远程Linux服务器,通过 ssh-keygen
来生成对应的公匙和密匙,将公匙放到远程Linux服务器上通过公匙和密匙配对进行登录。
1、本地设备生成公匙和密匙
在 cmd 窗口通过如下命令生成对应的公匙和密匙
# 在此通过 -f 来指定生成对应的公匙、密匙的位置和名称,不使用默认的 id_rsa 是避免覆盖掉其它平台的密匙
ssh-keygen -t ed25519 -f C:/Users/<userName>/.ssh/id_ed25519_vmUbuntu
一路默认点击Enter即可,该命令将在当前设备的 .ssh 目录下生成密匙id_ed25519_vmUbuntu
和 公匙id_ed25519_vmUbuntu.pub
文件。
2、将公匙添加到 Linux 服务器
(1)确认Linux服务器的 Home目录下是否有 .ssh 目录,如果没有需要新建。
(2)将 id_ed25519_vmUbuntu.pub
中的内容复制到 .ssh/authorized_keys
中(文件不存在时需要新建)。也可以将公匙直接发送到Linux上,重命名后移动到该位置。
(3)设置文件的权限
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
(4)、确保 /etc/ssh/sshd_config
中对应参数允许公匙登录
打开/etc/ssh/sshd_config
配置文件,确保 PubkeyAuthentication yes
,如下图所示
如果修改该配置文件,需要重启服务以让修改生效 sudo systemctl restart sshd
3、设置本机C:/Users/<userName>/.ssh/config
文件
设置本机中的 ssh 对应的config 文件,如下
Host 192.168.25.128(VM_Ubuntu)
HostName 192.168.25.128
User ubuntuTest
IdentityFile C:/Users/<userName>/.ssh/id_ed25519_vmUbuntu
PreferredAuthentications publickey
其中
IdentityFile
指定了密匙文件的位置(即上面-f
后面的文件完整路径),确保ssh登录时能找到。PreferredAuthentications publickey
为优先认证方式为公匙。
【问题汇总】
1、远程连接之后,打开相应的目录报错 BadInstallScriptResult, Log显示 Resolver error: Error: Got bad result from install script 。
需要断开连接,在 VSCode 中执行如下操作,将服务器的 VS Code Server 终止允许,操作如下:
ctrl + shift + p
:快捷键打开VSCode的命令输入窗口- 输入:
Remote-SSH: Kill VS Code Server on Host...
后选择对应的服务器地址即可 Kill 远程的 VSCode Server,然后在VSCode中重新连接即可。
【参考资料】