Linux ssh无密码访问  

 #如果密钥密码回车两次,密钥密码为空,采用ssh登录就不需要输入密钥密码,ssh root@192.168.9.80回车即可进入9.80,做到第二步即可实现目的。如果密钥自己设的有密码,想实现无密码登录可以看第三步。

        

 服务器 s 客户端 c   s用的192.168.9.22   c用的192.168.9.80

 

 1.生成密钥对,简便起见,在c上来生成,以下操作我用的都是root,你也可以用普通用户

 [root@test ~]# ssh-keygen -t dsa

Generating public/private dsa key pair.

Enter file in which to save the key (/root/.ssh/id_dsa): id_dsa

Enter passphrase (empty for no passphrase):    #这里输入你设定的密钥密码

Enter same passphrase again:     # 再一次输入密码 ,如果直接回车,密码为空。

Your public key has been saved in id_dsa.pub.

The key fingerprint is:

4b:a1:59:b9:31:1f:bf:3d:a8:c1:c9:ba:d9:7f:39:f3 root@test

The key's randomart p_w_picpath is:

+--[ DSA 1024]----+

|                 |

|         .       |

|        * .      |

|       + * o     |

|      o S . .    |

|       . + . +   |

|        . = o o. |

|         + o  =. |

|        +.o... +E|

+-----------------+

注:其中id_dsa是私钥,id_dsa.pub是公钥,私钥保留在客户端本地,公钥要复制到你要ssh登录的服务器上

2. 配置公钥

在c上复制公钥到服务器a



[root@test ~]# cd /root/.ssh/

[root@test .ssh]# ls

id_dsa  id_dsa.pub  known_hosts

[root@test .ssh]# scp ~/.ssh/id_dsa.pub root@192.168.9.80:/tmp

root@192.168.9.80's password: 

id_dsa.pub                                                                                          100%  731     0.7KB/s   00:00    

[root@test .ssh]# ssh root@192.168.9.80

root@192.168.9.80's password: 

Last login: Fri Oct 31 10:41:09 2014 from 192.168.9.123

cat /tmp/id_dsa.pub >> ~/.ssh/authorized_keys 

[root@ASG ~]# rm -rf /tmp/id_rsa.pub

注:这时候可以用密钥对认证从c登录a了

[root@ASG ~]# exit

logout

Connection to 192.168.9.80 closed.

[root@test .ssh]# ssh root@192.168.9.80

Last login: Fri Oct 31 11:14:09 2014 from 192.168.9.22

[root@ASG ~]# ifconfig    #可以看到现在使用密钥验证登录到9.80了,如果上面密钥密码直接回车,密码为空,这里就不需要输入密钥密码直接回车即可。



3配置无密码登录

如果密钥自己设置的有密码,可以接着配置弄成无密码ssh登录。


在客户端c上执行


[root@ASG ~]# eval `ssh-agent`

Agent pid 11490

`是TAB键上面那个键不是单引号


然后执行

ssh-add


Enter passphrase for /root/.ssh/id_dsa: 输入密钥对的密码

Identity added: /root/.ssh/id_dsa (/root/.ssh/id_dsa)


这时你就可以从c用ssh无密码访问a了。这样我们完成了Linux ssh无密码访问的服务器配置。