如何使用RSA密钥登陆ssh
March 23rd, 2011
No comments
作为一个unix/linux小白,今天折腾了下ssh登录,使用rsa,不再需要输入密码了,具体步骤如下:
- 在本机(客户端)生成rsa密钥
ssh-keygen -t rsa
这个命令会要提示三次输入:
1、第一次是存储rsa密钥的文件名称,默认的是id_rsa,可以直接回车使用默认的,也可以自己定义新的名称,最好还是放到.ssh目录下就可以了;
2、第二次是输入密码,最好输入一个密码,虽然可以为空(mac os下,请记住这个密码,第一次使用时需要输入)
3、第三次确认一次密码即可
生成的密钥文件有两个,以默认的为例,将会有一个id_rsa和id_rsa.pub,以.pub结尾的就是公钥,另外一个是密钥 - 添加rsa公钥到服务器上
使用scp将.pub文件复制到服务器上,使用如下命令添加新的密钥cat id_rsa.pub >> ~/.ssh/authorized_keys
然后通过重启sshd就可以了
/etc/init.d/sshd restart
不同平台重启命令可能不同,可以参考http://www.cyberciti.biz/faq/howto-restart-ssh/
PS: 如果在设置好了这些还是提示要密码登录,请检查ssh是否打开了rsa验证的设置,具体包括:
- 在/etc/ssh/sshd_config中将以下注释去掉(去掉行首的#号)
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
- 在/etc/ssh/ssh_config中添加下面两句到host下:
Protocol 2 RSAAuthentication yes
再次重启下sshd就可以了,第一次使用rsa登录时mac os会弹出提示要输入rsa的密码,就是在创建rsa密钥时指定的。
Enjoy!
参考资料:http://news.softpedia.com/news/How-to-Use-RSA-Key-for-SSH-Authentication-38599.shtml