私钥与公钥  

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

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

实验环境:

两台linux redhat6.5

地址分别为 192.168.10.100 / 192.168.10.200

 

首先开启服务端这的**验证

# vim /etc/ssh/sshd_config

去除这两项的#

PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

 

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

在一个普通用户下:

远程连接服务器---openSSH-私钥公钥与SSH代理

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

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

 

远程连接服务器---openSSH-私钥公钥与SSH代理

远程连接服务器---openSSH-私钥公钥与SSH代理

 

然后把**给到zzz用户

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

远程连接服务器---openSSH-私钥公钥与SSH代理

 

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

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

远程连接服务器---openSSH-私钥公钥与SSH代理

 

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

$ ssh [email protected]

远程连接服务器---openSSH-私钥公钥与SSH代理

 

下面布置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)
远程连接服务器---openSSH-私钥公钥与SSH代理

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

远程连接服务器---openSSH-私钥公钥与SSH代理