常规情况下,用linux客户端主机ssh连接linux服务端主机使用RSA认证是比较容易的:
假设A为客户端,B为服务端(假设IP为10.160.1.23);
在A上使用命令:
#ssh-keygen –t rsa (连续三次回车,即在本地生成了公钥和私钥,不设置密码)
#ssh root@10.160.1.23 "mkdir .ssh;chmod 0700 .ssh" (需要输入密码)
#scp ~/.ssh/id_rsa.pub root@10.160.1.23:.ssh/id_rsa.pub (需要输入密码)
在B上使用命令:
#mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys2 (如果authorized_keys2已经有公钥用追加>>)
这样当A用户去远程登录B的时候,就不需要密码登录了。
在windows系统下SecureCRT同样能实现该功能:
打开工具-创建公钥;接着按照提示下一步创建好私钥和公钥,把公钥中的内容想办法整到B主机上去(可以用ssh上去先)追加到B主机的~/.ssh/authorized_keys2 文件中。
接下来用SecureCRT登录看看,默认还是需要密码,这是因为SecureCRT默认认证机制是用password登录,改一下设置就可以,打开会话选项-SSH2-鉴权,调整publicKey的位置到第一。
这下就可以用SecureCRT免密码登录啦。