三周前借了一本《linux 网络管理员指南》,今天看了其中关于ssh的一章节。学会了如何免输密码登录ssh服务器。百淘时和章文嵩博士聊天时,他曾经给我讲述过怎么免输密码登录ssh,但是当时没听明白:(,现在总算明白了:)。 这个功能很好用,可以节约很多的输入密码的时间,不过在公司的环境下给的用户权限不足,不能进行设置,只能继续老老实实输入密码。测试环境是:Ubuntu9.10 + MacBookPro,其中Ubuntu9.10作为服务器,Mac作为客户端。
下面是具体的操作步骤,很精简,实用。
首先在sshd服务器端产生主机密钥,使用如下命令:
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N “”
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N “”
-N指服务器端”密码短语”,一般不需要使用。上述两个命令只要选择一个即可,更多的时候在Linux安装好之后,这些文件都已经生成好了,在/etc/ssh/目录下.如下:
star@star:/etc/ssh$ ls
moduli sshd_config ssh_host_dsa_key.pub ssh_host_rsa_key.pub
ssh_config ssh_host_dsa_key ssh_host_rsa_key
在客户端机器上通过下面命令生成个人的私钥和公钥 :
ssh-keygen -t rsa
ssh-keygen -t dsa
上述命令生成的私钥和公钥存放在 ~/.ssh/目录下:
starMacBookPro:.ssh star$ ls
id_dsa id_dsa.pub known_hosts
要实现免输入密码登录到服务器上,只需要将这个id_dsa.pub公钥写入到sshd服务器的~/.ssh/authorized_keys2的文件中,注意是写入这个文件,而不是复制到这个文件夹下。
可以使用下面的命令来实现:
starMacBookPro:.ssh star$ cat id_dsa.pub | ssh 192.168.1.102 “cat – >> ~/.ssh/authorized_keys2″
当然也可以将这个文件拷贝到服务器上,在cat id_dsa.pub >> ~/.ssh/authorized_keys2 来完成。
完成上述操作之后直接键入下面命令就可以登录到SSH服务器上了,不再需要输入密码了:)。
starMacBookPro:.ssh star$ ssh 192.168.1.102
Last login: Sun Jan 31 17:23:40 2010 from starmacbookpro.local
star@star:~$