软硬件环境:
两台linux服务器A和B
都编译安装上最新版的openSSH(建议)
openSSH的默认设置是允许root可以直接login. (PermitRootLogin yes),暂且保留这种设置,我们先考虑如何
用SSH直接从A到B不需要密码,假设用用户root登录到A,想SSH到B也作为root不需要密码。
1。 分别从A和B上登录作为root后运行ssh-keygen,目的是简单地在/root下创建目录.ssh,当提示输入
passphase时打入两次回车。这将生成/root/.ssh/identity and /root/.ssh/identity.pub
2。 先测试一下,从A登录作为root,打入#ssh B,会要求提示root password。
3。 现在从A登录作为root,运行scp /root/.ssh/identity.pub B:/root/.ssh/authorized_keys。
文件名必须不能弄错。
4。现在再从A运行#ssh B则不需要密码了:)
基本原理:
1。 如果你希望从A作为用户user1 SSH 到B 作为用户user2, 若要用RSA键对法认证且不需要密码,则B上的ssh
后台程序拿出~user2/.ssh/authorized_keys中的与A有关的RSA公钥来对A上的以user1身份运行的ssh客户程序
进行挑战,前面我们已经把A上的identity.pub拷贝到B上作为authorized_keys了。则A保持私钥identity,而B
上的sshd又拿出A的公钥来挑战,因此成功,你可以加很多行到authorized_keys以允许其它服务器的公钥可以加进来。