免密登入(重點)
- 公鑰:一串字串,在非對稱加密裡面用來加密資料,隨意公開。
- 私鑰:一串字串,在非對稱加密裡面用來解密資料,不能洩露。
- 你原本是用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 root@10.0.0.61
3.檢查服務端的 信任主機公鑰檔案
這裡存放了 客戶端的公鑰字串
[root@m-61 ~]#cat ~/.ssh/authorized_keys
4.此時已經可以免密登入了,只能透過git-bash這個工具去免密登入,因為記錄該主機名
ssh root@10.0.0.61
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 root@10.0.0.7
問題: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 root@10.0.0.7 將公鑰傳送給另一個機器
~/.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