使用ssh登錄服務器的時候,需要輸入ip地址、端口、用戶名、密碼等信息,比較麻煩,容易輸錯。還好,通過客戶端和服務器的配置參數,可實現免密碼快速登錄。服務器可通過保存客戶端的公鑰,用於驗證客戶端的身份,從而省去輸入密碼的步驟。客戶端也可通過配置服務器參數來簡化登錄命令。
本文主要是記錄了ssh面密碼快速登錄的配置過程,主要分為以下幾個步驟。
- 客戶端生成密鑰,包括私鑰和公鑰。
- 在服務器中配置客戶端的公鑰。
- 在客戶端配置服務器登錄相關參數。
本文示例中的服務器ip地址為192.168.1.1,ssh端口為22。
客戶端生成密鑰
客戶端生成密鑰的方法很簡單,只需要使用ssh-keygen命令。
ssh-keygen -t rsa
生成密鑰過程中,建議采用默認值,只需要按三次回車之后,就會再~/.ssh目錄下生成密鑰文件,其中,id_rsa為私鑰,id_rsa.pub為公鑰。
服務器配置
服務器的~/.ssh/authorized_keys文件保存可快速連接的客戶端的公鑰。只需把客戶端生成的id_rsa.pub文件的內容拷貝到authorized_keys文件的末尾。拷貝的方法有:
- 直接拷貝。由於id_rsa.pub和authorized_keys都是文本文件,可通過拷貝命令直接拷貝。
- 把id_rsa.pub上傳到服務器,然后再把內容添加到authorized_keys文件中。
在客戶端把文件上傳到服務器的用戶目錄的操作命令如下:
scp ~/.ssh/id_rsa.pub root@192.168.1.1:
在服務器操作的命令如下:
cat id_rsa.pub >> ~/.ssh/authorized_keys
配置好之后,登錄服務器就不再需要密碼了。
在客戶端配置服務器登錄相關參數
除了密碼之外,登錄時,還需要配置ip地址、端口、用戶等信息,也比較繁瑣。可通過客戶端的~/.ssh/config配置服務器的相關參數簡化登錄命令。
config文件的配置內容如下:
Host server Hostname 192.168.1.1 Port 22 User bingoli
其中,Host為服務器的名稱,輸入登錄命令時使用,后續登錄只需要記住這個名字就可以;Hostname為服務器的ip地址;Port為ssh的端口;User為服務器的用戶名。配置好相關參數之后,就可以使用簡化的命令登錄服務器了。
ssh server
從此以后,登錄服務器就簡單多了。
關於作者
歡迎關注作者微信公眾號:程序員bingo
原文地址:https://www.cnblogs.com/bingoli/p/10567734.html