在CentOS上使用SSH密钥认证,可以提高系统安全性,避免使用密码登录
-
安装OpenSSH服务器:
如果尚未安装OpenSSH服务器,请使用以下命令安装:
sudo yum install openssh-server
-
创建SSH密钥对:
在本地计算机上创建一个新的SSH密钥对。运行以下命令,然后按提示操作:
ssh-keygen -t rsa -b 2048
这将在
~/.ssh
目录下生成一个名为id_rsa
的私钥文件和一个名为id_rsa.pub
的公钥文件。 -
将公钥复制到服务器:
使用
ssh-copy-id
命令将本地计算机的公钥复制到服务器的authorized_keys
文件中。首先,通过SSH无密码登录到服务器:ssh root@your_server_ip
然后,将公钥添加到
authorized_keys
文件:mkdir -p ~/.ssh chmod 700 ~/.ssh cat ~/.ssh/id_rsa.pub | ssh root@your_server_ip "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys"
最后,退出服务器:
exit
-
配置SSH服务器以禁用密码登录:
编辑
/etc/ssh/sshd_config
文件,找到或添加以下行:PasswordAuthentication no
保存文件并退出。然后,重启SSH服务以应用更改:
sudo systemctl restart sshd
-
测试密钥认证:
现在,尝试通过SSH密钥对登录到服务器。首先,在本地计算机上运行以下命令:
ssh root@your_server_ip
当提示输入密码时,使用私钥文件(
~/.ssh/id_rsa
)进行身份验证。如果一切正常,您将无需输入密码即可登录到服务器。
请注意,为了确保安全性,建议将私钥文件(~/.ssh/id_rsa
)存储在安全的位置,并确保只有授权用户可以访问它。