CentOS配置密钥登录
🕙2023-06-22
本地操作
首先需要在本地生成密钥对,Windows操作与Unix操作相似,本篇以Windows为例
打开cmd,输入ssh-keygen -t rsa
连续回车直到结束,id_rsa.pub是公钥,id_rsa是私钥
复制生成的公钥,文件地址在输出的信息中有显示,图中的就为C:\Users\yimi/.ssh/id_rsa.pub
服务器操作
进入服务器进行相同的操作生成密钥对 ssh-keygen -t rsa
在服务器中存放密钥对的文件夹中(一般是.ssh
目录,图中所示为/root/.ssh/
)新建一个authorized_keys
文件,将本地生成的密钥对的公钥内容复制进去,也就是本地生成的id_rsa.pub
文件内容,如果之前因为某些原因已经建立authorized_keys
文件的话直接在后面追加内容即可
修改sshd服务允许密钥登录
vi /etc/ssh/sshd_config
修改成以下项(找到相应被注释掉的配置删掉注释,或者直接在末尾追加也行)
## 开启私钥登录[RSAAuthentication (rsa认证)是只支持第一代SSH通讯协议使用的配置项,在CentOS7.3之后的版本中被废除了,因为默认使用第二代协议了]
RSAAuthentication yes
## 开启 公私钥登录认证
PubkeyAuthentication yes
## root 用户能否通过 SSH 登录
PermitRootLogin yes
## 添加 公钥的保存文件
AuthorizedKeysFile .ssh/authorized_keys
关闭密码登录(可选
PasswordAuthentication no
重启服务器sshd服务
service sshd restart
如果服务器版本过高可能会要求使用
systemctl restart sshd
如果以上配置都配置好后仍无法连接,尝试给.ssh目录777权限
赋予.ssh文件夹700权限
chmod 700 ~/.ssh
修改为指定用户的ssh目录,这里以root用户为例