centos添加RSA证书设置用户免密码登陆

首先,在本地生成一对证书

cd ~/.ssh

ssh-keygen -t rsa

提示输入证书的名称,我们可以指定一下证书文件的名称;输入密码可以直接按回车。

假设我们指定证书名字为:myserver,则会生成以下两个文件

myserver
myserver.pub

其中带.pub的是公钥。

我们需要把这个公钥文件放到服务器上,比如使用scp复制上去。

scp myserver.pub root@host_ip:/tmp

拷上去后,先用账号密码登陆到服务器。然后在服务器上操作,把公钥内容导入到authorized_keys文件中。

cd ~/.ssh/

cat /tmp/myserver.pub >> authorized_keys

.ssh目录下有一个文件authorized_keys; 这是用来存用户登陆公钥的。

然后,去修改/etc/sshd_config配置文件

RSAAuthentication yes
StrictModes no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

其中StrictModes本来是注释掉的,如果不取消注释并改为no,则只有root用户能通过证书免密登陆,普通用户还是需要输入密码。

修改好上面的配置文件后,重新一下sshd服务,服务端就算配好了。

systemctl restart sshd

接下来退出服务器,回到本地。

cd /etc/ssh

vi ssh_config

添加一行

IdentityFile = ~/.ssh/myserver

保存退出,试一下

ssh root@your_host_id