当前位置:网站首页>SSH免密码登录详解
SSH免密码登录详解
2022-07-05 13:53:00 【星哥玩云】
为了更好的理解SSH免密码登录原理,我们先来说说SSH的安全验证,SSH采用的是”非对称密钥系统”,即耳熟能详的公钥私钥加密系统,其安全验证又分为两种级别。
1. 基于口令的安全验证
这种方式使用用户名密码进行联机登录,一般情况下我们使用的都是这种方式。整个过程大致如下:
(1)客户端发起连接请求。
(2)远程主机收到用户的登录请求,把自己的公钥发给客户端。
(3)客户端接收远程主机的公钥,然后使用远程主机的公钥加密登录密码,紧接着将加密后的登录密码连同自己的公钥一并发送给远程主机。
(4)远程主机接收客户端的公钥及加密后的登录密码,用自己的私钥解密收到的登录密码,如果密码正确则允许登录,到此为止双方彼此拥有了对方的公钥,开始双向加密解密。
PS:当网络中有另一台冒牌服务器冒充远程主机时,客户端的连接请求被服务器B拦截,服务器B将自己的公钥发送给客户端,客户端就会将密码加密后发送给冒牌服务器,冒牌服务器就可以拿自己的私钥获取到密码,然后为所欲为。因此当第一次链接远程主机时,在上述步骤的第(3)步中,会提示您当前远程主机的”公钥指纹”,以确认远程主机是否是正版的远程主机,如果选择继续后就可以输入密码进行登录了,当远程的主机接受以后,该台服务器的公钥就会保存到 ~/.ssh/known_hosts文件中。
2. 基于密匙的安全验证
这种方式你需要在当前用户家目录下为自己创建一对密匙,并把公匙放在需要登录的服务器上。当你要连接到服务器上时,客户端就会向服务器请求使用密匙进行安全验证。服务器收到请求之后,会在该服务器上你所请求登录的用户的家目录下寻找你的公匙,然后与你发送过来的公匙进行比较。如果两个密匙一致,服务器就用该公匙加密“质询”并把它发送给客户端。客户端收到“质询”之后用自己的私匙解密再把它发送给服务器。与第一种级别相比,第二种级别不需要在网络上传送口令。
PS:简单来说,就是将客户端的公钥放到服务器上,那么客户端就可以免密码登录服务器了,那么客户端的公钥应该放到服务器上哪个地方呢?默认为你要登录的用户的家目录下的 .ssh 目录下的 authorized_keys 文件中(即:~/.ssh/authorized_keys)。
3. 使用场景
rsync自动备份时免密码登录,集群环境中需要主机间互相通信如:Hadoop,目前小编只涉及到这两处,日后有其它地方用到再来补充~
3. 相关配置项
SSHD服务的配置文件位于/etc/ssh/sshd_config
配置项一:PubkeyAuthentication 是否允许使用密钥验证方式登录
配置项二:AuthorizedKeysFile允许登录主机的公钥存放文件,默认为用户家目录下的 .ssh/authorized_keys
4. 权限问题
.ssh文件夹 700 chmod 700 .ssh
authorized_keys文件 644 chmod 644 .ssh/authorized_keys
5. 配置实现
服务器:192.168.0.10 用户:server
客户端:192.168.0.11 用户:client
# 客户端配置
# 使用client用户登录并进入家目录
# cd /home/client
# 建立认证公钥和私钥
# ssh-keygen -t rsa (会有提示输入密码,直接回车即可)
# 之后会在家目录下建立 .ssh 文件夹,内有id_rsa(私钥)和id_rsa.pub(公钥)两个文件
# 将公钥文件上传到服务器上server的家目录
# scp ~/.ssh/id_rsa.pub [email protected]:~
# 服务器端配置
# 使用server用户登录并进入家目录
# cd /home/server
# 建立 .ssh 文件夹
# mkdir .ssh;
# 修改文件夹权限
# chmod 700 .ssh
# 将客户端传过来的id_rsa.pub文件中的内容加入到authorized_keys中
# cat id_rsa.pub >> .ssh/authorized_keys
# chmod 644 .ssh/authorized_keys
之后你从客户端使用 client 用户登录服务器的server用户时就不需要再输入密码了,但是第一次连接时还是会提示你进行远程主机公钥指纹核对并将其存入 ~/.ssh/known_hosts 文件。
边栏推荐
- Usage, installation and use of TortoiseSVN
- Linked list (simple)
- Simple process of penetration test
- Request + BS4 crawl Netease cloud music popular comments
- Attack and defense world web WP
- Ueditor + PHP enables Alibaba cloud OSS upload
- 如何把大的‘tar‘存档文件分割成特定大小的多个文件
- 2022 construction welder (special type of construction work) special operation certificate examination question bank and online simulation examination
- Aikesheng sqle audit tool successfully completed the evaluation of "SQL quality management platform grading ability" of the Academy of communications and communications
- 鏈錶(簡單)
猜你喜欢
-Web direction attack and defense world
Xampp configuring multiple items
LeetCode_2(两数相加)
IP packet header analysis and static routing
Intranet penetration tool NetApp
Kotlin协程利用CoroutineContext实现网络请求失败后重试逻辑
Why do I support bat to dismantle "AI research institute"
ELFK部署
Self built shooting range 2022
Idea set method annotation and class annotation
随机推荐
LeetCode_69(x 的平方根 )
Convolutional Neural Networks简述
明峰医疗冲刺科创板:年营收3.5亿元 拟募资6.24亿
通讯录(链表实现)
aspx 简单的用户登录
【华南理工大学】考研初试复试资料分享
Basic characteristics and isolation level of transactions
内网穿透工具 netapp
Kafaka log collection
Jetpack compose introduction to mastery
Network security HSRP protocol
[cloud resources] what software is good for cloud resource security management? Why?
我为什么支持 BAT 拆掉「AI 研究院」
Solve the problem of invalid uni app configuration page and tabbar
ZABBIX monitoring
Source code analysis of etcd database -- peer RT of inter cluster network layer client
ETCD数据库源码分析——集群间网络层客户端peerRt
The development of speech recognition app with uni app is simple and fast.
asp.net 读取txt文件
RK3566添加LED