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中重新连接即可。

【参考资料】

  1. 同一主机下GitBash生成的多个ssh配置问题
  2. SSH 基本用法
posted @ 2025-03-10 18:15  Jeffxue  阅读(475)  评论(0)    收藏  举报