实验环境
服务器端:vmnet1 静态ip :192.168.10.6,安装telnet-server,创建用户zhangsan
客户端:vmnet1 静态ip:192.168.10.7,安装telnet客户端,创建用户lisi
保证客户端、服务器端可以通信
提前知道lisi私钥短语
密钥对登录
免密码登录
我将默认端口改为了2200
(1)修改ssh配置文件
vim /etc/ssh/sshd_config
开启下面三项
(2)客户端切换到lisi,创建密钥对
su - lisi
ssh-keygen -t rsa
设置私钥短语,不能太简单dr123456
(3)服务器端zhangsan:配置文件允许lisi登录
创建.ssh :
su - lisi
mkdir .ssh/
拷贝客户端lisi的公钥文件到服务器端的zhangsan下
scp -P 2200 id_rsa.pub [email protected]:/home/zhangsan/.ssh/ zhangsan.pub
服务器zhnagsan查看公钥文件并输出到authoritzed_keys
cat alice.pub>>authoritzed_keys
禁用密码认证
或者可以不注释,将yes改为no
ssh [email protected] -p 2200,连接失败
和客户端权限一样chmod 700
修改authorized_keys权限为700
(4)客户端lisi ssh 远程登录连接
此时密钥对登录成功
冒充身份进行密钥验证登录
(1)客户端新建用户hacker
useradd hacker
(2)客户端生成公钥文件:
su - hacker
ssh -keygen -t rsa
私钥短语:dr123456(不能太简单)
(3)ssh 登录服务器
ssh [email protected],拒绝访问,因为服务器端的~/.ssh/authorized_keys文件中没有hacker的公钥文件
(4)hacker不可访问lisi,但是root可以,可以切换到root里将lisi的公钥文件拷贝到hacker的公钥文件里,此时hacker已经获取了lisi的私钥短语和公钥文件,此时可以假冒lisi的身份ssh远程登录服务器端的zhangsan
cp /home/lisi/.ssh/* /home/hacker/.ssh/