私钥与公钥  

所谓"公钥登录",原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

这种方法要求用户必须提供自己的公钥。如果没有现成的,可以直接用ssh-keygen生成一个。

实验环境:

两台linux redhat6.5

地址分别为 192.168.10.100 / 192.168.10.200

 

首先开启服务端这的密钥验证

# vim /etc/ssh/sshd_config

去除这两项的#

PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

 

绑定一个普通用户到客户机

在一个普通用户下:

10717153427_thumb[3]

注意这个密码是有长度要求的,至少大于4位。

生成的密钥储存在用户家目录下的SSH文件夹

 

10717153622_thumb[1]

10717155350

 

然后把密钥给到zzz用户

$ ssh-copy-id -i id_rsa.pub [email protected]

10717155701

 

这里的密码是用户ZZZ的密码。

回到ZZZ的家目录下查看,发现已经有了公钥文件

10717160311

 

这时我们就可以使用密钥登陆zzz的系统了。

$ ssh [email protected]

10717161240

 

下面布置ssh代理用来免密码登陆密钥

[[email protected] .ssh]$ ssh-agent bash
[[email protected] .ssh]$ ssh-add
Enter passphrase for /home/perk/.ssh/id_rsa:    #输入密钥的密码
Identity added: /home/perk/.ssh/id_rsa (/home/perk/.ssh/id_rsa)
10717161724

这样我们就可以免密码使用密钥登陆zzz的系统(并不安全)

10717161914