免密登录需依次完成五步:一、本地生成ed25519密钥对;二、用ssh-copy-id将公钥部署至远程authorized_keys;三、配置~/.ssh/config设置主机别名与密钥路径;四、vscode中通过remote-ssh扩展选择该别名连接;五、终端执行ssh别名验证是否免密。
如果您在使用 vscode 的 remote - ssh 扩展连接远程服务器时频繁输入密码,则可能是本地 ssh 密钥未正确配置或未与远程服务器的 authorized_keys 文件关联。以下是实现免密登录的具体操作步骤:
本文运行环境:MacBook Air,macOS Sequoia。
一、生成本地 SSH 密钥对
该步骤用于在本地机器创建一对加密密钥(私钥和公钥),私钥保存在本地,公钥将被部署到远程服务器以完成身份验证。
1、打开终端应用,执行命令:ssh-keygen -t ed25519 -C "your_email@example.com"。
2、按回车键接受默认保存路径(通常为 ~/.ssh/id_ed25519)。
3、连续两次回车跳过密钥密码(passphrase)设置,实现完全无交互式登录。
二、将公钥复制到远程服务器
该步骤将本地生成的公钥内容追加至远程服务器用户主目录下的 ~/.ssh/authorized_keys 文件中,使服务器认可该密钥的身份凭证。
1、执行命令:ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote_host,其中 user 为远程用户名,remote_host 为服务器 IP 或域名。
2、首次连接时输入远程用户密码完成认证。
3、确认远程服务器 ~/.ssh/authorized_keys 文件末尾已新增一行以 ssh-ed25519 开头的公钥内容。
三、配置本地 SSH 客户端别名
该步骤通过编辑本地 ~/.ssh/config 文件,为远程主机定义可读性强的别名及连接参数,便于 VSCode 快速识别并复用密钥。
1、执行命令:touch ~/.ssh/config && chmod 600 ~/.ssh/config。
2、用文本编辑器打开该文件,添加以下内容:
Host myserver
HostName 192.168.1.100
User ubuntu
IdentityFile ~/.ssh/id_ed25519
3、保存文件,确保 HostName 和 User 值与实际远程环境一致。
四、在 VSCode 中配置 Remote - SSH 连接
该步骤利用 VSCode 的 Remote - SSH 扩展,通过已配置的 SSH 别名建立连接,触发密钥自动认证流程。
1、按下 Cmd+Shift+P(macOS)调出命令面板,输入并选择:Remote-SSH: Connect to Host...。
2、从下拉列表中选择上一步配置的别名 myserver。
3、等待 VSCode 自动启动远程服务器上的 VS Code Server,并加载工作区。
五、验证免密登录状态
该步骤通过直接使用 OpenSSH 客户端测试连接,确认密钥机制是否生效,排除 VSCode 扩展层干扰。
1、在终端中执行:ssh myserver。
2、若未提示输入密码即进入远程 shell,则密钥认证成功。
3、如仍要求密码,请检查远程服务器 ~/.ssh 目录权限是否为 700,authorized_keys 文件权限是否为 600。











