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)
把自己的秘钥放进去
然后重复第四步