先说一下如何建立信任关系。假设有两台机器A和B,现建立A与B的信任关系(这里指A信任B):
1. 登录到B的$HOME目录下,执行下面的命令:
cd .ssh
ssh-keygen -t dsa(对于提示信息一律回车)
2. 将生成的id_dsa.pub的内容拷贝到A机器的$HOME/.SSH/authorized_keys中。
若A机器上$HOME/.SSH/authorized_keys原来不存在,新建该文件将拷贝内容放入即可;若已存在,将拷贝内容追加到文件中。
一般情况下,按照上面的方法建立信任关系后,这时从B机器用ssh的方法登录到A机器是不用输密码的,同时证明信任关系成功建立。但是若仍提示输密码,则有可能是A机器上目录和文件的权限问题。可参照下面的配置进行检查,若不符改正即可:
目录/文件 权限
work(假设$HOME=/home/work/) drwx--x--x
.ssh drwx------
authorized_keys -rw-r--r--
注意:上述目录/文件的权限不能多(少了当然不行)!
我就碰到过,因为work目录的权限是drwxr--x--x导致在建立信任关系后,ssh登录时仍提示输密码。
我想这也是出于系统安全的考虑吧。 |