Skip to content

CentOS 开放 SSH 密钥登录教程

生成 SSH 密钥对

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

shell
ssh-keygen -t rsa -b 2048

选择密钥文件路径

shell
# 可以直接选择会车,则会生成默认密钥 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

输入密码(可选)

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

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

生成完成

shell
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 命令将公钥复制到服务器:

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

配置 SSH 服务

编辑 SSH 配置文件

在 CentOS 上编辑 SSH 配置文件:

shell
sudo vim /etc/ssh/sshd_config

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

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

重启 SSH 服务

shell
sudo systemctl restart sshd

验证密钥登录

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

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

检查权限

shell
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 指令。