linux scp无密码

cuixingwudi 2011-06-07

原理:

密匙认证需要依靠密匙,首先创建一对密匙(包括公匙和密匙,并且用公匙加密的数据只能用密匙解密),并把公匙放到需要远程服务器上。这样当登录远程服务器时,客户端软件就会向服务器发出请求,请求用你的密匙进行认证。服务器收到请求之后,先在你在该服务器的宿主目录下寻找你的公匙,然后检查该公匙是否是合法,如果合法就用公匙加密一随机数(即所谓的challenge)并发送给客户端软件。客户端软件收到“challenge”之后就用私匙解密再把它发送给服务器。因为用公匙加密的数据只能用密匙解密,服务器经过比较就可以知道该客户连接的合法性。

客户机:192.168.1.153

远端主机:192.168.1.151

在客户机以root用户执行下述命令:

[[email protected]]#/usr/bin/ssh-keygen-trsa

Generatingpublic/privatersakeypair.

Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):

Enterpassphrase(emptyfornopassphrase):

Entersamepassphraseagain:

Youridentificationhasbeensavedin/root/.ssh/id_rsa.

Yourpublickeyhasbeensavedin/root/.ssh/id_rsa.pub.

Thekeyfingerprintis:

30:f6:d7:2a:ac:56:eb:3f:fa:40:25:8d:90:96:68:[email protected]

------------------------------------------------

说明:

该命令将在用户的主目录/.ssh目录下面产生一对密钥

一般采用的ssh的rsa密钥:

id_rsa私钥

id_rsa.pub公钥

下述命令产生不同类型的密钥

ssh-keygen-tdsa

ssh-keygen-trsa

ssh-keygen-trsa1

-------------------------------------------------------

[[email protected]]#scp/root/.ssh/[email protected]:/root/.ssh/authorized_keys

Theauthenticityofhost'192.168.1.151(192.168.1.151)'can'tbeestablished.

RSAkeyfingerprintis4b:a5:74:fb:2e:08:60:af:fa:76:d4:b0:26:4c:13:75.

Areyousureyouwanttocontinueconnecting(yes/no)?yes

Warning:Permanentlyadded'192.168.1.151'(RSA)tothelistofknownhosts.

[email protected]'spassword:

id_rsa.pub100%2360.2KB/s00:00

-------------------------------------------------------------

说明:

将公钥拷贝到远端主机,并写入授权列表文件

你也可以把公钥文件拷贝过去后,在远端主机下直接执行

touch/root/.ssh/authorized_keys

cat/root/.ssh/id_rsa.pub>>/root/.ssh/authorized_keys

-------------------------------------------------------------

操作完毕,登陆检查。

[[email protected]]#ssh192.168.1.151

[email protected]'spassword:

请注意此时如果仍提示输入密码,请检查如下文件夹和文件的操作权限,这是非常重要的,否则ssh公钥认证体制不能正常工作:

192.168.1.153(客户端)

/home/root文件夹的权限是600

/home/root/.ssh文件夹的权限是600(好像这个权限关系不是很大)

/home/root/.ssh/id_dsa私钥的权限600

192.168.1.151(远端主机)

/home/root文件夹的权限是644

/home/root/.ssh文件夹的权限是644(好像这个权限关系不是很大)

/root/.ssh/authorized_keys公钥的权限644

--------------------------------------------------------------

[root@localhost~]#ssh192.168.1.151

Lastlogin:SatDec1521:10:172007from192.168.1.153

[root@localhost~]#

无密码SSH登陆成功!

-----------------

参考:

http://blog.csdn.net/turkeyzhou/archive/2010/06/16/5673497.aspx

客户机的.ssh目录必须在生成rsa密钥的时候可写

服务主机的.ssh权限为700

服务主机的authorized_keys权限为644

主机和客户机的用户用户名相同(本文同为corey)

相关推荐

InJavaWeTrust / 0评论 2020-01-28