简述
通过密钥登录可以增强主机安全性,原理即自己持有私钥,服务器上存放公钥,ssh连接时通过公私钥认证来登录。这里要解决的主要问题就是密钥生成与配置的问题。在此做一个笔记。
密钥生成
- XShell自带密钥管理,工具-新建用户密钥生成向导中,即有生成和管理的功能。按提示操作后即可得到公私钥。将公钥复制到~/.ssh/authorized_keys中,登录时选择对应的私钥即可。但这里要注意复制时可能会遗漏前面字母,我复制时就遗漏了第一个字母“s”,导致半天没有找出原因。
- PuTTY Key Generator生成,这个是通过随机晃动鼠标来生成随机密钥,也是把公钥复制到上述文件中,再用私钥登录即可。可以将私钥导入到XShell中,也可以直接用命令行:
ssh -i private_key root@192.168.1.101
- linux自带命令ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub。再将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys即可
ssh配置
PubkeyAuthentication yes #启用公告密钥配对认证方式
AuthorizedKeysFile %h/.ssh/authorized_keys #PublicKey文件路径一般不用改
RSAAuthentication yes #允许RSA密钥
PasswordAuthentication no #可以禁止密码验证登录
然后再重启ssh服务即可
安全问题
如果~/.ssh/目录下可以写的话,写入自己公钥文件就可以登录了,所以此文件权限最好设为600。从另一个角度来说这也是通过文件写拿shell的好方法:P