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无密码访问的服务器配置。