平时在服务器间跳来跳去的话如果不把通道打通,即便是你能记住所有的密码,也很麻烦。很早前用过一回,前几天又需要用到,结果突然忘了怎么使用了,今天把它记下来,免得下次再忘了还得去找方法。
机器1:dwapp@pttest1
机器2:gpadmin1@hadoop1
首先尝试从1跳到2
dwapp@pttest1:/home/dwapp/.ssh>ssh gpadmin1@hadoop1
gpadmin1@hadoop1's password:
dwapp@pttest1:/home/dwapp/.ssh>
提示输入密码,CTRL+C结束掉。既然我们想从1跳到2,那么首先得建立起他们之间的信任。如何建立呢,你想啊,你想要达到的目的是从1不输入密码直接跳到2,那么2凭什么相信你呢?你得人家一个保证,人家才允许你无条件的跳转吧。
在家目录下面有一个.ssh文件夹,cd 进去,看看都有什么
dwapp@pttest1:/home/dwapp/.ssh>ls
authorized_keys
这时执行如下命令ssh-keygen -t dsa,过程中不断的按回车就可以了,然后会生成两个文件
dwapp@pttest1:/home/dwapp/.ssh>ls
authorized_keys id_dsa id_dsa.pub
把id_dsa.pub里的内容追加到机器2相应的authorized_keys 文件中,这时再从1往2跳跳试试
dwapp@pttest1:/home/dwapp/.ssh>ssh gpadmin1@hadoop1
Last login: Tue Mar 22 21:59:04 2011 from 10.22.13.107
Authorized uses only. All activity may be monitored and reported.
[gpadmin1@hadoop1 ~]$
###########补充###############
今天在新环境试了几次跳转仍然需要密码,又上网搜了一把,才发现有个忽略的地方
设置authorized_keys权限
$ chmod 600 authorized_keys
设置.ssh目录权限
$ chmod 700 -R .ssh
附一篇之前看过的帖子http://nickkathy.javaeye.com/blog/653921