应用场景
- 避免每次连接开发机都输入密码,在企业中也常常限制密码登录的方式,需要每次走公司的鉴权流程;
- 授权他人登录时,利用 ssh 公钥授权,不需要把用户名和密码暴露给他人。
原理
密码登录
概览图
- 远程主机收到客户端请求后会把自己的公钥发送给客户端
- 客户端通过公钥加密之后将密码发送给远程主机
- 远程主机用私钥解密,密码如果正确则登录成功
公钥登录
概览图
- 配置流程
- 客户端生成密钥对
- 将自己的公钥存储到远程主机的
~/.ssh/authorized_keys
中
- 登录流程
- 客户端发起登录时,远程主机会发送一段随机字符串给客户端
- 客户端用自己的私钥加密后重新发回远程主机
- 远程主机用存储的客户端公钥解密
- 对比解密后的字符串和之前发送给客户端的字符串,相同的话则认为登录成功
流程详解
配置流程
- 客户端生成密钥对
# 执行完如下命令,一直回车,便会生成两个文件:id_rsa 存储私钥,id_rsa.pub 存储公钥 ssh-keygen -t rsa
- 远程主机配置
- 编辑文件
/etc/ssh/sshd_config
# 启用RSA认证 RSAAuthentication yes # 启用公钥认证 PubkeyAuthentication yes # 公钥认证文件 AuthorizedKeysFile .ssh/authorized_keys
- 客户端生成的公钥追加到
~/.ssh/authorized_keys
- 编辑文件
登录流程
ssh user@ip
标签:公钥,登录,主机,免密,ssh,远程,客户端
From: https://www.cnblogs.com/zhouweixin/p/17060063.html