Linux服务器间无需密码的SSH配置

openSSH的默认设置是允许root可以直接login. (PermitRootLoginyes), 暂且保留这种设置,我们先考虑如何用SSH 直接从A到B不需要密码,假设用用户root登录到A,想SSH到B也作为root不需要密码。 lv"eZ#Sx0

  1. 分别从A和B上登录作为root后运行ssh-keygen,目的是简单地在/root下创建目录.ssh,当提示输入51Testing软件测试网'eS+`2c8z Z*N,Ly
      passphase时打入两次回车。这将生成/root/.ssh/identity and/root/.ssh/identity.pub
  2. 测试 一下,从A登录作为root,打入#ssh B,会要求提示root password。
  3. 现在从A登录作为root,运行scp /root/.ssh/identity.pubB:/root/.ssh/authorized_keys。
    P Yw/M-v0 文件名必须不能弄错。
  4. 现在再从A运行#ssh B则不需要密码了:)
基本原理:

M(F4g)P!A0     如果你希望从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以允许其它服务器的公钥可以加进来。

k^3u.vmbj0

实际应用举例:

51Testing软件测试网l#E!h1F l5r!D/I~q

使用SSH命令连接一台服务器,默认情况下会提示我们输入密码:51Testing软件测试网JE%{e%ov
willis:~ # ssh 192.168.4.24951Testing软件测试网bLwE-DU d qa
Password:51Testing软件测试网_/r nFMz

51Testing软件测试网1]8R"W[^2I,U k&k0m

创建密钥:51Testing软件测试网:~ufQV M{Z0K6_
willis:~ # ssh-keygen -t rsa 51Testing软件测试网:_q6w^*I^%uv/
Generating public/private rsa key pair.51Testing软件测试网-}1TL)hn4b+d[
Enter file in which to save the key (/root/.ssh/id_rsa):
&j S`,{4oN%^0 Enter passphrase (empty for no passphrase):
6U�T8bz I�p0 Enter same passphrase again:51Testing软件测试网W!Yr,l#XMI
Your identification has been saved in /root/.ssh/id_rsa.51Testing软件测试网 G8}5nA ] k/vlI(gR
Your public key has been saved in /root/.ssh/id_rsa.pub.51Testing软件测试网 Up0Zh4|hW�Q /2z
The key fingerprint is:
0Ks'E)ksW?;S0 ae:1e:a6:49:b9:51:1e:27:bc:a6:7d:dd:bb:6b:1a:55root@willis
"j5N1xK.tT5V0 willis:~ #51Testing软件测试网.H'V_6yGR `�w y

51Testing软件测试网 PJ mIE

注意:输入上面的ssh-keygen命令后,不用输入任何信息,直接按回来就可以了,其中参数-t rsa是加密的类型,创建后的密钥在用户主目录中的隐藏目录.ssh中,

[~V cB-]0 51Testing软件测试网5c3vB ndFCh }%n"g$B

willis:~/.ssh # ls51Testing软件测试网5^:Mz-d;~v5eo
authorized_keys id_rsa id_rsa.pub known_hosts
&R Z&k/v D0 willis:~/.ssh #51Testing软件测试网n&M~T&J:/Rp4V

G3gcaeS%P0 id_rsa.pub是公钥,id_rsa是私钥,known_hosts保存着所有已发生连接服务器的信息,需要将公钥里的信息拷贝到登陆服务器用户主目录中的隐藏目录.ssh的文件authorized_keys中,

4k/aug3d(Lg-{U)m!N}0 51Testing软件测试网f*`NiAi5n

先看看*.pub文件的内容:
.]d9/7mt6F K$u0 willis:~/.ssh # cat id_rsa.pub51Testing软件测试网:P#DLcz3D n
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAz61yRO3qGkjNPFpYd9nW4O5F1byghbrCXlxMtB3IKDVHxX9ojybRzZcDDl6KN8w0hq08vWpgjlC
~CM8k2B"R0 GkYcU75BXCk7zA/5jABejIUOMzgzC+A9b0eNm9ebTInXmfWlYf3P+axDgUlJ84MTAxa68l+Q/6uYc3KbVSsttB6/F37DRZGlTdSyKn51Testing软件测试网[,@9q G3C Q
19BimZtZ/M7lyMtqJpYovypxkesbkJjW85sIr2lZeuxqRZWz1ixBwMQyljUvwbHvCS91mzjS76ngKchOCyt9XbwHuL/cXHKMOHgcb
q7o)L{+JrM0 uDqZS8kZFycwVkaNc5f+pZuQ/W8X9Iei35yUEa8qI53Z9o/09fBdOJbl7W5eXLyw==root@willis
#_|�@YK NRj8/0 willis:~/.ssh #

M? TF7B9h$Wq"I0 51Testing软件测试网6UsMa&rY7| b"X

拷贝文件:51Testing软件测试网 r-v5jy g;TZ*W
willis:~/.ssh # scp id_rsa.pubroot@192.168.4.249:/root/.ssh/192.168.4.49
9B_|K"a(Sk^H4yM0 Password:
RU+Z6b*[6`0 id_rsa.pub 100% 394 0.4KB/s 00:0051Testing软件测试网 Ko}7U3b n+N�k
willis:~/.ssh #51Testing软件测试网"i m{"OaM7I2T

51Testing软件测试网&[8q+Q-Tj2yd b

scp命令和ssh命令都属于同一个包,前面的s都表示secure,这样无论在传输数据或是远程连接都是经过加密的,不用担心数据被直接截获。拷贝过去之后,先登陆到这台服务器上。
/O0?{em0 willis:~/.ssh # ssh 192.168.4.249
D+L x,]"U a2u7h0 Password:51Testing软件测试网'Tqk,L;a.eK
Last login: Sun Jul 8 11:15:18 2007 from 192.168.4.49
)F4l bgw0 Have a lot of fun...
't ?6wn4Jc0 amd64:~ #51Testing软件测试网b^|5kw#zm

,Tq;^/k.Gv4|N0 amd64:~ # cd .ssh
,c9~l!I$?PCm0 amd64:~/.ssh # ls51Testing软件测试网Bp ^)z&k4L(k1u!y0Q0D
192.168.4.49 authorized_keys authorized_keys2 id_rsa id_rsa.pub known_hosts
Bvp.j4_KF8L0 amd64:~/.ssh #

8ukX+{ e;Il0 51Testing软件测试网9q7?V M-R@H'D y

192.168.4.49就是刚才传过来的公钥文件,为了保证文件的唯一和可管理性,建议用这个文件命名的方式,要不然信任关系建多了就不好管理了,将这个文件的内容复制到authorized_keys文件中:51Testing软件测试网1w)q@$I6j[S
amd64:~/.ssh # cat 192.168.4.49
4I/?T}@p C#Pqi/x0 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAz61yRO3qGkjNPFpYd9nW4O5F1byghbrCXlxMtB3IKDVHxX9ojybRzZcDDl6KN8w0hq08vWpgjlCGkYcU75BXCk7zA/5jABejIUOMzgzC+A9b0eNm9ebTInXmfWlYf3P+axDgUlJ84MTAxa68l+Q/6uYc3KbVSsttB6/F37DRZGlTdSyKn19BimZtZ/M7lyMtqJpYovypxkesbkJjW85sIr2lZeuxqRZWz1ixBwMQyljUvwbHvCS91mzjS76ngKchOCyt9XbwHuL/cXHKMOHgcbuDqZS8kZFycwVkaNc5f+pZuQ/W8X9Iei35yUEa8qI53Z9o/09fBdOJbl7W5eXLyw==root@willis 51Testing软件测试网)KkN @@ _L1{V2m
amd64:~/.ssh # cat 192.168.4.49 >> authorized_keys

p,UVR1OGG&FtL1a0

@(w8Z0wF0 注意:要用“>>”这个符号,该符号表示追加,不会将以前的内容删掉,默认情况下,authorized_keys这个文件是不存在的,需要手动来创建,因为比较长不太好记忆,可以通过这个方法来查找:51Testing软件测试网6/_s)Jv c x

51Testing软件测试网d(K aQK'|.zS0P

amd64:~/.ssh # man ssh-keygen
m#{B ]/?0 显示帮助信息后,搜索"auth"这个关键字就可以了,下面就让我们重新登陆测试一下,先退出当前登陆的主机环境:51Testing软件测试网 K(Uk|!/

51Testing软件测试网V1hAu:/Q0^/H

amd64:~/.ssh # exit

krFWQ}0 51Testing软件测试网*Xl+ta+ADo

重新SSH连接:
j)MwN!e*@V+rRc*L0 willis:~/.ssh # ssh 192.168.4.249
,kd'x8fMPt-leJ0 Last login: Sun Jul 8 11:26:41 2007 from 192.168.4.49
&_)CZ o1_@F t G0 Have a lot of fun...
?zsiQ�sH0 amd64:~ #

+X#G&` i D9D7E3f0 51Testing软件测试网C/n k'v8_x ` 如果配置和文件名的拼写都正确,那么将不会再提示输入密码的信息,根据我的经验,大多数配置失败都是因为 authorized_keys的文件命令有误,所以要多多注意。好了!配置到这里,SSH的信任关系就成功了,虽然很简单,但有很多概念性的东西需要我 们掌握,如果想进一步了解,可以看看相关的帮助文档,还有/etc/ssh目录中的SSH配置文件51Testing软件测试网 h#i(Jv0N,?}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值