环境准备:?
主机:A | IP:192.168.10.101 | 用户:zhangsan |
---|---|---|
主机:B | IP:192.168.10.102 | 用户:lisi |
现在要实现的是B主机上的用户lisi可以无需密码即可登录到A主机zhangsan用户中:
1.在客户端创建密钥对
在Linux客户端中,通过ssh-keygen工具为当前用户创建密钥对文件,可用的加密算法为:
ECDSA
或DSA
(ssh-keygen命令的-t
选项指定算法类型)
创建B主机上用户lisi作为用户登陆客户端,并生成基于ECDSA算法的SSH密钥对(公钥、私钥文件):
注意:生成密钥对前请先切换到要生成用户密钥对的用户中
code:
ssh-keygen -t ecdsa
2.将公钥文件(id_ecdsa.pub)上传到服务器:
Code:
scp /home/lisi/.ssh/id_ecdsa.pub root@192.168.10.101:/tmp
3.在服务器中导入密钥文本
-
先在用户的宿主目录下创建
.ssh
目录
mkdir /home/zhangsan/.ssh
-
cat命令重定向到
/home/zhangsan/.ssh/authorized_keys
文件中(这一步请务必使用root用户做)
4.验证
ssh zhangsan@192.168.10.101
BinGo~完成
总结:
通过实验得知:
id_ecdsa | 私钥 |
---|---|
id_ecdsa.pub | 公钥 |
公约验证 | 私钥解密 |
分为四个步骤:
- 客户端创建密钥对
- 将公钥上传到服务器
- 在服务器中导入公钥文件
- 在客户端使用公钥对验证登陆
好处:
- 使用密钥对验证的方式登录,不需知道服务器中用户的密码
- 更安全