每次登錄服務器都要輸入密碼很麻煩,所以進行免密登錄配置之后就可以跳過輸入密碼的步驟,直接登錄服務器,
目錄
- 原理
- 實作步驟
- 一、生成公鑰和私鑰
- 二、在客戶端編輯組態檔
- 三、將公鑰拷貝到服務器
- 四、重啟ssh服務
- 五、關閉再打開cmd進行登錄
原理
ssh提供了安全的身份認證的策略,在免密登錄之前,首先需要一對公鑰和私鑰,
客戶端拿著私鑰,服務端拿著公鑰,屬于非對稱加密,
私鑰客戶端自己拿著不在網路上傳輸,公鑰可以網路傳輸存在服務器上,登錄的時候用戶拿私鑰進行加密,內容發送給服務器,服務器對公鑰進行解密,成功解密就告訴客戶端建立鏈接,
實作步驟
一、生成公鑰和私鑰
- Windows 打開 cmd
- 輸入:
ssh-keygen - 連續回車或者根據提示確定生成的私鑰公鑰存放的路徑,默認(就是一路回車)會在
用戶/.ssh目錄下生成公鑰和私鑰,
id_rsa:私鑰
id_rsa.pub:公鑰
二、在客戶端編輯組態檔
在用戶/.ssh目錄,打開config檔案,如果沒有的話自己新建一個
# 這里可以寫IP也可以寫域名
Host XXX.XXX.XXX.XXX
# 可以是域名也可以是IP
HostName XXX.XXX.XXX.XXX
# 登錄時的用戶名
User root
PreferredAuthentications publickey
# 本地檔案,注意這個地方是放私鑰的路徑
IdentityFile C:\Users\aaa\.ssh\id_rsa
重要提示!!!
IdentityFile C:\Users\aaa\.ssh\id_rsa
用戶名的路徑上一定不能有中文,如果有就無法實作免密登錄,如果你的用戶名是中文,要么需要修改成英文,要么就將秘鑰放置到別的檔案路徑中,
這樣添加好組態檔后,才相當于告訴了ssh登錄的時候要去這個地方拿私鑰去登錄這個服務器,
三、將公鑰拷貝到服務器
- 在服務器輸入
ssh-keygen回車(生成服務器的公私鑰) - 完成后會在用戶目錄下生成
.ssh目錄(輸入ls -a查看) - 進入ssh目錄
cd .ssh - 將客戶端的公鑰(也就是剛剛Windows上自己生成的
id_rsa.pub)添加到authorized_keys檔案:- 可以先上傳到服務器,再
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
其中~/.ssh/id_rsa.pub是剛剛上傳到服務器的客戶端公鑰的路徑 - 也可以
vim authorized_keys直接將Windows上自己生成的id_rsa.pub的內容拷貝過去
- 可以先上傳到服務器,再
注意:如果沒有
authorized_keys檔案的話,參考這里
到這應該可以進行免密登錄了,如果還不行的話,嘗試以下兩步,
四、重啟ssh服務
執行下面命令重啟ssh服務,
systemctl restart sshd
五、關閉再打開cmd進行登錄
Ref:
[1] Windows系統下實作服務器SSH免密登錄)
[2] Windows 配置 ssh 免密登錄
[3] 命令列 bash:/home/user/. ssh/authorized_keys: 沒有檔案或者目錄
侵刪,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/254890.html
標籤:其他
