Linux上實現ssh免密通訊
- 1.SSH互信原理
- 2.SSH所需的RPM包
- 3.兩臺機器實現互信
- 4.常見問題及處理
1.SSH互信原理
SSH(Secure Shell)是一種安全的傳輸協議,它能讓Linux系統中的服務器和客戶端之間進行安全可靠的通訊。
SSH使用加密的傳輸方式,以保證客戶端和服務器之間的通訊安全。默認加密技術:rsa,加密位:2048位,將用戶數據和控制指令加密,以保護數據不被第三方攔截。
SSH可以驗證客戶端的身份,確保只有授權的用戶才能訪問服務器。
在Linux系統中運行SSH,需要兩個軟件:一個是服務器端的軟件,一個是客戶端的軟件。服務器端的軟件叫做OpenSSH-Server,主要實現SSH服務器功能。它可以處理SSH消息并執行用戶指令,以實現遠程登錄功能。客戶端的軟件叫做SSH-Client,會根據服務器端提供的信息將用戶指令加密,并且可以認證服務器的身份。
2.SSH所需的RPM包
OpenSSH所需的RPM包有5個:
包名 | 說明 |
---|---|
openssh-7.4p1-21.el7.x86_64.rpm | openssh核心文件 |
openssh-askpass-7.4p1-21.el7.x86_64.rpm | ?持對話框窗? 顯示 X系統 |
openssh-clients-7.4p1-21.el7.x86_64.rpm | 客戶端軟件包 |
openssh-keycat-7.4p1-21.el7.x86_64.rpm | openssh公鑰,私鑰文件 |
openssh-server-7.4p1-21.el7.x86_64.rpm | 服務器端軟件包 |
3.兩臺機器實現互信
- 執行命令生成公用key(兩臺機器都要執行)
~]$ ssh-keygen -t rsa -P ''
~]$ cd ~/.ssh
~]$ cat id_rsa.pub >>authorized_keys
- 想要免密登錄哪臺服務器,就將自己的id_rsa.pub內容,拷貝到想要登錄服務器的authorized_keys文件中
- 文件和目錄權限設置
id_rsa:私鑰,相當于‘鎖’,文件權限:600(不能更改)
id_rsa_pub:公鑰,相當于‘鑰匙’,文件權限:644(不能更改)
authorized_keys:認證文件,記錄別人(對端)給你的公鑰,文件權限:600(不能更改)
known_hosts:指紋文件,記錄首次SSH互信通訊時,對方的指紋信息,文件權限:600(不能更改)
用戶目錄權限:755或700,絕對不能是77x,否則無論你如何設置每次ssh通訊都要求你輸入密碼
.ssh目錄權限:755或700
- 進行ssh免密登錄
第一次ssh登錄時還會要求輸入密碼,之后就免密了。
4.常見問題及處理
問題描述:ssh通訊時還是要求輸入密碼,返回日志信息為:Authentication refused:bad ownership or modes
處理方法:檢查目錄及文件權限,將不符合要求的權限按要求進行設置即可。