一、认证原理
1.输入密码(口令)验证

用户在客户端ssh远程服务器,远程服务器将自己的公用密钥下发至客户端的~/.ssh/known_hosts ,也就是我们连接一台新服务器时的会输入 yes 的过程,客户端将使用该公开密钥来加密数据,远程服务器使用自己的私有密钥来解密数据,从而实现加密访问过程。
2. 免密登录(秘钥)验证

首先在客户端创建一对密匙,手动把公钥放在远程服务器的可信任列表中 cd ~/.ssh/authorized_keys。
当客户端SSH连接服务器时,客户端携带着公钥向服务器发出链接请求,远端服务器收到请求后,在 ~/.ssh/authorized_keys信任文件里比对该公钥是否存在,如果对比成功,远端服务器则使用该公钥加密一个随机字符串(challenge),然后发送给客户端。客户端接收到该服务器回来的请求后,将随机字符串(challenge)用自己的私钥进行解密,之后再将解密后的结果传给远端服务器,远端服务器对比传来的字符串是否一致,一致则建立连接。
对称加密和非对称加密的结合,使得通信安全和效率上大大的提高。
1 . 对称密钥加密是指加密和解密使用同一个密钥的方式,这种方式存在的最大问题就是密钥发送问题,即如何安全地将密钥发给对方。
2. 非对称加密指使用一对非对称密钥,即:公钥和私钥,公钥可以随意发布,但私钥只有自己知道。发送密文的一方使用对方的公钥进行加密处理,对方接收到加密信息后,使用自己的私钥进行解密。
由于非对称加密的方式不需要发送用来解密的私钥,所以可以保证安全性。但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。
二、ssh 免密配置
1. 在本地生成公私密钥 (/home/username/.ssh/)
ssh-keygen -t rsa
2. 将本地的公钥上传到远程服务器的用户信任列表
scp id_rsa.pub username@192.168.*.*:/home/username/.ssh/
3. 检查远程服务器可信任列表
cd ~/.ssh/
cat id_rsa.pub >> authorized_keys
4. 免密登录
ssh username@192.168.*.*
5. Windows 还需配置一个 config 文件
# 进入.ssh
cd ~/.ssh/
# 新建config
vim config
# 添加以下内容
Host usa_server
HostName 192.168.*.*
User user
Port 22
IdentityFile "C:\Users\username\.ssh\id_rsa"
# 保存
# ssh别名链接验证
ssh usa_server
参考链接:
本文详细介绍了SSH的认证原理,包括输入密码验证和密钥验证方式,重点讲解了SSH免密登录的配置步骤,包括生成公私钥、上传公钥到远程服务器、配置授权文件以及进行免密登录的测试。同时,提到了Windows环境下配置SSH连接的额外步骤,确保安全高效地实现远程服务器访问。
765

被折叠的 条评论
为什么被折叠?



