最近在连接两台 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 远程开发配置

  1. 安装插件:打开 VSCode → Extensions → 搜索并安装 Remote - SSH

  2. 连接服务器:

    打开命令面板(Cmd+Shift+P)→ 输入:Remote-SSH: Connect to Host... → 输入:

    root@xxx.xxx.xxx.xxx

  1. 第一次连接时,选择你的私钥路径:~/.ssh/id_rsa

        从此以后,VSCode 会记住这台主机,并通过 SSH 密钥自动连接,不再弹出密码框。

🛠 六、如果 ssh-copy-id 无效怎么办?

有时服务器权限不当或 SSH 配置不对,可手动检查:

  1. 登录服务器:

    ssh root@服务器IP
  2. 检查 ~/.ssh/authorized_keys 是否包含你的公钥

  3. 确保权限:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
  4. 检查 /etc/ssh/sshd_config 中是否有:

    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    PermitRootLogin yes
  5. 重启 SSH 服务:

    systemctl restart sshd

    ✨ 总结

    通过以上步骤,你可以实现在 macOS 下:

    ✅ 一次生成密钥,多服务器免密连接

    ✅ 密钥密码交给钥匙串记住,完全不弹框

    ✅ VSCode 一键打开远程 Linux,体验如本地开发


    有了这个流程,管理多台 Linux 服务器再也不用每次输入密码,效率翻倍!如果你觉得有用,欢迎点赞收藏~

 

 

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐