1. MacBook 端操作

1.1 创建 SSH 密钥对

命令:

ssh-keygen -t rsa -b 4096 -C "备注"
  • Enter file in which to save the key:直接回车(默认保存至 ~/.ssh/id_rsa)。
  • Enter passphrase:输入你的私钥密码(建议设置)。
  • Enter same passphrase again:再次输入以确认。

1.2 将私钥加入 macOS 钥匙串

输入以下命令,将私钥添加到钥匙串,系统会要求输入你刚设置的访问密码:

ssh-add --apple-use-keychain ~/.ssh/id_rsa

1.3 在钥匙串访问中查看 SSH 私钥

  • 按下 Command + Space​,搜索并打开 “钥匙串访问”(Keychain Access)
  • 在左侧选择 “登录”(login) 钥匙串。
  • 右侧搜索框输入 ssh
  • 查找名为 SSH: /Users/你的用户名/.ssh/id_rsa 的条目(显示本地私钥目录)。
  • 双击该条目,勾选 “显示密码” ,输入你的 Mac 开机密码后可查看私钥口令。
  • 建议为条目添加备注,标明对应服务器。

1.4 配置自动调用钥匙串内私钥

编辑 SSH 配置文件,实现自动调用钥匙串内的私钥:

vim ~/.ssh/config

复制以下内容,并补充需要连接的服务器信息:

Host *
    # 连接复用配置
    ControlMaster auto
    ControlPath ~/.ssh/master-%r@%h:%p
    ControlPersist 10m

    # 保持连接活跃
    ServerAliveInterval 30
    ServerAliveCountMax 2

    # 自动使用 Mac 钥匙串
    AddKeysToAgent yes
    UseKeychain yes
    IdentityFile ~/.ssh/id_rsa


Host router
    HostName 192.168.100.1
    User root
    Port 22

# --- 服务器系列 ---
Host debian
    HostName 192.168.100.50
    User root
    # 如有更改端口(如 2222),请相应修改
    Port 22

1.5 快速登录体验

配置完成后,连接和传输文件更加便捷:

场景以前的命令现在的命令
登录 Debianssh root@192.168.100.50ssh debian
传文件到 Debianscp xxx.js root@192.168.100.1:/tmp/scp xxx.js debian:/tmp/

2. 服务器端操作

2.1 上传公钥到服务器

命令:

# 请将 user 换成 root,IP 换成你服务器实际 IP 
ssh-copy-id root@192.168.100.1
  • 执行后:系统会要求输入一次该服务器的 SSH 登录密码。
  • 成功标志:出现 Number of key(s) added: 1 提示。
  • 多台服务器:每台服务器需分别执行一次该命令。

2.2 查看服务器已存储的公钥

在服务器终端输入:

cat ~/.ssh/authorized_keys

可查看当前已授权的公钥列表。

2.3 仅允许密钥方式登录服务器

[!注意:] ⚠️ Warning
修改前请勿断开当前 SSH 连接,务必使用新密钥测试登录成功后再断开!
  • 编辑 SSH 配置文件:
vim /etc/ssh/sshd_config
  • 找到并修改以下参数(去掉前面的 # 注释):

    • PubkeyAuthentication yes
    • PasswordAuthentication no
  • 重启 SSH 服务:
systemctl restart ssh

标签: ssh, mac-os, 钥匙串, 服务器, 密钥管理

添加新评论