Mac 设置 SSH 免密登录 Linux(支持 VSCode 远程开发)
最近在连接两台 Linux 服务器,每次都要输入密码太麻烦。于是我在 Mac 上配置了 SSH 密钥,并让 VSCode 支持一键远程开发。特此记录整个流程,供大家参考。
🧩 场景背景
-
我的设备:MacBook Pro(Apple M 芯片)
-
操作系统:macOS Ventura / Sonoma
-
服务器系统:Ubuntu 24.04 LTS
-
工具:终端(bash/zsh)、VSCode、Remote-SSH 插件
🔐 一、生成 SSH 密钥
在终端中执行:
ssh-keygen -t rsa -b 4096
回车即可,路径默认保存在:
/Users/用户名/.ssh/id_rsa (私钥)
/Users/用户名/.ssh/id_rsa.pub (公钥)
如果提示输入 passphrase(密钥密码),建议设置一个,不然谁拿到私钥就能直接连你服务器。
🧠 二、将密钥添加进 macOS 钥匙串(实现自动解锁)
执行:
eval "$(ssh-agent -s)"
ssh-add --apple-use-keychain ~/.ssh/id_rsa
这时会提示你输入一次密钥密码,之后 macOS 钥匙串会帮你记住,永不再输入。
⚙️ 三、配置 SSH 自动加载密钥
编辑 SSH 配置:
nano ~/.ssh/config
添加以下内容:
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
保存:Ctrl + O → 回车 → Ctrl + X
🌐 四、将公钥上传到服务器(实现免密码登录)
假设服务器信息如下:
-
服务器 IP:xxx.xxx.xxx.xxx
-
用户名:root
-
密码:***********
使用以下命令上传本地公钥:
ssh-copy-id root@xxx.xxx.xxx.xxx # 服务器一
ssh-copy-id root@xxx.xxx.xxx.xxx # 服务器二
# 更多可以一直往下+
每次执行会要求输入一次服务器的密码。
✅ 上传成功后,再测试连接:
ssh root@xxx.xxx.xxx.xxx
此时如果你的私钥密码已添加进钥匙串,就能 一键免密登录!
🧩 五、VSCode 远程开发配置
-
安装插件:打开 VSCode → Extensions → 搜索并安装 Remote - SSH
-
连接服务器:
打开命令面板(Cmd+Shift+P)→ 输入:Remote-SSH: Connect to Host... → 输入:
root@xxx.xxx.xxx.xxx
-
第一次连接时,选择你的私钥路径:~/.ssh/id_rsa
从此以后,VSCode 会记住这台主机,并通过 SSH 密钥自动连接,不再弹出密码框。
🛠 六、如果 ssh-copy-id 无效怎么办?
有时服务器权限不当或 SSH 配置不对,可手动检查:
-
登录服务器:
ssh root@服务器IP -
检查 ~/.ssh/authorized_keys 是否包含你的公钥
-
确保权限:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys -
检查 /etc/ssh/sshd_config 中是否有:
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PermitRootLogin yes -
重启 SSH 服务:
systemctl restart sshd✨ 总结
通过以上步骤,你可以实现在 macOS 下:
✅ 一次生成密钥,多服务器免密连接
✅ 密钥密码交给钥匙串记住,完全不弹框
✅ VSCode 一键打开远程 Linux,体验如本地开发
有了这个流程,管理多台 Linux 服务器再也不用每次输入密码,效率翻倍!如果你觉得有用,欢迎点赞收藏~
更多推荐



所有评论(0)