首先,在你的本地机器(客户端)上生成SSH密钥对。打开终端并运行以下命令:
ssh-keygen -t rsa -b 4096
-t rsa
指定生成RSA类型的密钥。-b 4096
指定密钥长度为4096位。按照提示操作,你可以选择密钥的保存位置和设置密码短语(passphrase)。通常情况下,你可以直接按回车键使用默认位置和空密码短语。
使用ssh-copy-id
命令将公钥复制到CentOS服务器。这个命令会要求你输入服务器的用户密码。
ssh-copy-id user@server_ip
将user
替换为你的服务器用户名,server_ip
替换为你的服务器IP地址。
如果ssh-copy-id
命令不可用,你可以手动复制公钥。首先,找到生成的公钥文件(通常是~/.ssh/id_rsa.pub
),然后将其内容追加到服务器上的~/.ssh/authorized_keys
文件中:
cat ~/.ssh/id_rsa.pub | ssh user@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
确保服务器的SSH配置允许密钥认证。编辑服务器上的/etc/ssh/sshd_config
文件:
sudo vi /etc/ssh/sshd_config
找到以下行并进行相应的修改:
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
确保这些行没有被注释掉(即没有以#
开头)。
保存并退出编辑器,然后重启SSH服务以应用更改:
sudo systemctl restart sshd
现在,你应该能够使用SSH密钥认证登录到服务器了。尝试从客户端连接到服务器:
ssh user@server_ip
如果一切设置正确,你应该能够无需输入密码即可登录。
ssh -p port user@server_ip
。~/.ssh/authorized_keys
文件,确保没有未经授权的公钥。通过以上步骤,你应该能够在CentOS系统上成功设置SSH密钥认证。