切换主题
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
指令。