免密登录(重点)
- 公钥:一串字符串,在非对称加密里面用来加密数据,随意公开。
- 私钥:一串字符串,在非对称加密里面用来解密数据,不能泄露。
- 你原本是用root的密码进行身份验证,登录该服务器
- 客户端更换为公钥形式登录
- 普通密钥:一串字符串。在对称加密里面,加密和解密都用它
基于公私钥的认证(免密码登录)
windows免密登录linux
1. 生成公私钥,客户端的
客户端的~/.ssh 这个目录,就存放了客户端机器的公私钥文件
ssh-keygen
生成之后查看公钥私钥
$ ls ~/.ssh
id_rsa id_rsa.pub
2.发给服务端
客户端的公私钥对以及有了,把客户端的公钥,发给服务端(~/.ssh/)
[root@m-61 ~]#ls ~/.ssh
known_hosts
通过命令,吧客户端的公钥,写入到服务端的authorized_keys文件中
$ ssh-copy-id [email protected]
3.检查服务端的 信任主机公钥文件
这里存放了 客户端的公钥字符串
[root@m-61 ~]#cat ~/.ssh/authorized_keys
4.此时已经可以免密登录了,只能通过git-bash这个工具去免密登录,因为记录该主机名
ssh [email protected]
linux免密登录linux
master-61 免密登录 web-7
1.在61机器生成公私钥对儿
ls ~/.ssh/
[root@m-61 ~]#ssh-keygen
2.检查公私钥
[root@m-61 ~]#ll ~/.ssh/
3.发送master-61的公钥,给web-7
为了免密登录
ssh-copy-id [email protected]
问题:web-7是如何允许master-61登录自己的
前提一定你通过某办法,吧master-61的公钥,写入到web-7机器的~/.ssh/authorized_keys
web-7 会去自己的 ~/.ssh/authorized_keys 是否有master-61的公钥
ssh账户密码认证涉及的配置文件、命令、以及作用
/etc/ssh/sshd_config
Port 22999 修改端口
PubkeyAuthentication yes 允许公钥登录
PasswordAuthentication no 禁止密码登录
systemctl restart sshd 重启服务
ssh公私钥认证涉及的配置文件、命令、以及作用
ssh-keygen 生成公钥对
ll ~/.ssh/ 生成公钥对的文件位置
ssh-copy-id [email protected] 将公钥发送给另一个机器
~/.ssh/authorized_keys 另一个机器接收到的公钥写入的文件
限制主机登录条件、设定iptables规则,只允许跳板机的流量(172.16.1.61)登录,其他机器的流量全部禁止。(只限定ssh的服务,限制22999的流量)
在想添加该规则的机器上执行
针对web-7限定只允许 master-61访问
[root@web-7 ~]#iptables -A INPUT ! -s 172.16.1.61 -p tcp --dport 22999 -j DROP
[root@web-7 ~]#
[root@web-7 ~]#
[root@web-7 ~]#iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- !172.16.1.61 anywhere tcp dpt:22999
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
标签:web,公钥,进阶,登录,61,免密,ssh,root
From: https://www.cnblogs.com/btcm409181423/p/18064318