共计 772 个字符,预计需要花费 2 分钟才能阅读完成。
SSh 服务登录的验证方式:
基于口令的安全验证
1、客户端发起 ssh 请求,服务器会把自己的公钥发送给用户
2、用户会根据服务器发来的公钥对密码进行加密
3、加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则登录成功
注:不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
基于密匙的安全验证
1、先在客户端生成一对密钥(ssh-keygen),并将客户端的公钥 ssh-copy-id 拷贝到服务端
2、当客户端再次发送一个连接请求,包括 ip、用户名
3、服务端得到客户端的请求后,会到 authorized_keys 中查找,如果有响应的 IP 和用户,就会随机生成一个字符串,例如:acdf
4、服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端
5、得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端
6、服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录
CentOS 6 为客户端 192.168.40.130
Centos 7 为服务端 192.168.40.129
一、在客户端生成密钥对
默认为 rsa 算法
ssh-keygen -t dsa 以 dsa 算法生成密钥对
二、把公钥文件传输到服务器上要登录用户家目录下
三、连接测试
Key 验证之后,scp 这种走 ssh 通道的都会免密
私钥须保存好
加快 SHH 连接速度
在服务端修改 /etc/ssh/sshd_config 配置文件
把 UseDNS 和 GSSAPIAuthentication 两项都改成 no
然后重启 ssh 服务
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2018-01/150245.htm