1. 生成秘钥

找一台linux服务器输入以下命令即可生成秘钥
ssh-keygen -t rsa

生成后默认会在  /root/.ssh文件夹下生成秘钥文件
id_rsa(私钥文件) 
id_rsa.pub(公钥文件)

2. 转化私钥文件为rsa格式(因为生成的默认是open格式的,需要转化为rsa格式)

ssh-keygen -p -m PEM -f /root/.ssh/id_rsa

我一般默认格式回车几次

这样就修改为正确的格式可供使用

3. 对公钥文件加权限

将公钥id_rsa.pub(公钥文件)的内容写入到.ssh同目录下的authorized_keys文件

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

cd /root/.ssh
chmod 600 authorized_keys

4. 修改ssh连接配置文件并重新加载ssh验证配置

vi /etc/ssh/sshd_config

修改文件中配置

#开启RSA验证
RSAAuthentication yes 
#是否使用公钥验证
PubkeyAuthentication yes 

#公钥的保存位置
AuthorizedKeysFile .ssh/authorized_keys 

#禁止使用密码验证登录
PasswordAuthentication no 

修改完保存

重启验证服务
systemctl restart sshd

5. 测试验证

使用连接终端,使用之前生成的私钥,进行测试
我使用的是finalsheel连接的,能保存私钥
连接测试成功
一开始没有进行 ssh-keygen -p -m PEM -f /root/.ssh/id_rsa转换,一直登录不上,加密后才正常使用

6. 如果想使用已存在秘钥

root用户使用这条命令看看家目录有没有(.ssh文件夹),cd .ssh,如果存在就会进入这个文件夹,不存在就(makedir .ssh)

修改.ssh这个文件夹权限(chmod 700 .ssh)

查看.ssh文件夹下是否有这个文件(authorized_keys),没有就(vim authorized_keys,然后保存退出)

修改这个文件权限(chmod 700 authorized_keys)

把自己的秘钥放进去
然后重复第四步