Linux服务器间无需密码的SSH配置
上一篇 / 下一篇 2007-10-06 00:07:47 / 个人分类:Linux系统配置
openSSH的默认设置是允许root可以直接login. (PermitRootLoginyes), 暂且保留这种设置,我们先考虑如何用SSH直接从A到B不需要密码,假设用用户root登录到A,想SSH到B也作为root不需要密码。
W)R0y8m:BO0- 分别从A和B上登录作为root后运行ssh-keygen,目的是简单地在/root下创建目录.ssh,当提示输入51Testing软件测试网%_$PKz O%RA S
x@
passphase时打入两次回车。这将生成/root/.ssh/identity and/root/.ssh/identity.pub - 先测试一下,从A登录作为root,打入#ssh B,会要求提示root password。
- 现在从A登录作为root,运行scp /root/.ssh/identity.pubB:/root/.ssh/authorized_keys。
H"~)y]2aw"iR K0文件名必须不能弄错。 - 现在再从A运行#ssh B则不需要密码了:)
基本原理:
:UvB.qE2Ds0 如果你希望从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以允许其它服务器的公钥可以加进来。51Testing软件测试网*j2`*X'L_ME
实际应用举例:
C/b Q-Fz+v
rj0使用SSH命令连接一台服务器,默认情况下会提示我们输入密码:
|I}D$T6Js;fU8i0willis:~ # ssh 192.168.4.24951Testing软件测试网G,K({1{?
a
Password:51Testing软件测试网hP|s3G:p
n1Gh,MH#N0创建密钥:
G!_&?]*j4j,}N0willis:~ # ssh-keygen -t rsa
r2@zA8b,{$zSz5g0Generating public/private rsa key pair.51Testing软件测试网`7Ka$jl|"Y0iN
Enter file in which to save the key (/root/.ssh/id_rsa):51Testing软件测试网/k8tA+d(n%EY\nXk
Enter passphrase (empty for no passphrase):
`A6y5c Dv0Enter same passphrase again:51Testing软件测试网%_2Z*Is B.B2j1~
Your identification has been saved in /root/.ssh/id_rsa.
x%s&ns&{9^p_J'b]0Your public key has been saved in /root/.ssh/id_rsa.pub.
j0vJ+R9u9t0i!X
zt0The key fingerprint is:
_nk4|Tz9p9m2W0ae:1e:a6:49:b9:51:1e:27:bc:a6:7d:dd:bb:6b:1a:55root@willis
s6xW&Y(\Qu LP0willis:~ #51Testing软件测试网+A&vk WA
注意:输入上面的ssh-keygen命令后,不用输入任何信息,直接按回来就可以了,其中参数-t rsa是加密的类型,创建后的密钥在用户主目录中的隐藏目录.ssh中,
2F,c%T:|/V8YA051Testing软件测试网|Q_/`S+_vwillis:~/.ssh # ls
_QqJ;`?0authorized_keys id_rsa id_rsa.pub known_hosts
^ }JU0C1G0willis:~/.ssh #