通过ssh-keygen打通两台主机间通道

时间:2022-02-06 01:34:17

平时在服务器间跳来跳去的话如果不把通道打通,即便是你能记住所有的密码,也很麻烦。很早前用过一回,前几天又需要用到,结果突然忘了怎么使用了,今天把它记下来,免得下次再忘了还得去找方法。

机器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