生成 SSH 密钥对

在你的本地机器上生成 SSH 密钥对。打开终端并执行以下命令:

ssh-keygen -t rsa -b 2048

选择密钥文件路径

# 可以直接选择会车,则会生成默认密钥 id_rsa
Enter file in which to save the key (/Users/你的用户名/.ssh/id_rsa):
# 也可以自定义名称 如:my_key
Enter file in which to save the key (/Users/你的用户名/.ssh/id_rsa): my_key
​

输入密码(可选)

系统会提示你输入密码,以保护你的私钥。你可以选择设置一个密码,也可以直接按回车键留空:

Enter passphrase (empty for no passphrase):
# 如果选择设置密码,输入后会提示你再输入一次:
Enter same passphrase again:

生成完成

Your identification has been saved in /Users/你的用户名/.ssh/id_rsa.
Your public key has been saved in /Users/你的用户名/.ssh/id_rsa.pub.

你可以选择不输入任何内容,直接使用默认路径和空密码。

至此,你的 SSH 密钥对已成功生成,下一步是将公钥复制到 CentOS 服务器上

复制公钥到 CentOS 服务器

使用 ssh-copy-id 命令将公钥复制到服务器:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@<你的服务器IP>

配置 SSH 服务

编辑 SSH 配置文件

在 CentOS 上编辑 SSH 配置文件:

sudo vim /etc/ssh/sshd_config

确保以下配置项存在并设置为如下:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no  # 可选,禁用密码登录以增强安全性

重启 SSH 服务

sudo systemctl restart sshd

验证密钥登录

在本地机器上尝试使用密钥登录:

ssh -i ~/.ssh/id_rsa root@<你的服务器IP>

检查权限

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub

若您自定义的名称,如my_key 则把命令中的id_rsa 都换成my_key 即可

其他安全措施(可选)

  • 禁用 root 用户的 SSH 登录:在 /etc/ssh/sshd_config 中设置 PermitRootLogin no

  • 只允许特定用户使用 SSH 登录:使用 AllowUsers 指令。