跳到主要內容

Linux & Windows 使用 SSH 公開金鑰(Public Key Authentication) 登入遠端主機(Linux Server)

目的:
讓SSH連線更加安全及便利

Step1

Linux Server 配置

1.在需要使用金鑰驗證的使用者(brookadmin)家目錄建立一個 .ssh 資料夾 ,權限 700
# mkdir .ssh
2.在 .ssh 資料夾內 建立一個 authorized_keys 的檔案,權限600,這裡會存放 client 端的Pubkey
#touch authorized_keys

Step2

Linux Client 使用 ssh-keygen 產生金鑰 
1.進到使用者家目錄下 .ssh 目錄,使用指令 ssh-keygen 產生金鑰
2.將生成的公鑰存至要連線的服務器,使用指令 ssh-copy-id
#sudo ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22168 brookadmin@192.168.240.148

Windows Client 使用 ssh-keygen 產生金鑰

1.使用的windows作業系統是win 10,打開 cmd 命令提示字元,使用指令 ssh-keygen 產生金鑰,金鑰位置:C:\Users\your username\.ssh,使用者的.ssh資料夾下

2.將 id_rsa.pub文件內容金鑰,添加到遠程linux server管理帳號下家目錄的 .ssh/authorized_keys 檔案裡

Step3

Linux Server 配置

1.將 Linux Client 跟 Windows Client 的 id_rsa.pub(公開金鑰)內容依序加入檔案,如果沒有金鑰可以先使用 ssh-keygen 產生,公開金鑰檔名可以自訂,需記住使用哪一組,加入金鑰後的authorized_keys 檔案內容就像圖片所示

2.編輯 SSH 設定檔 > sudo vim /etc/ssh/sshd_config
#找到 PubkeyAuthentication 將註解#拿掉 並修改參數
#找到 PasswordAuthentication 修改參數為 no

3.重新啟動 ssh 服務,讓設定生效
#sudo systemctl restart sshd

Step4

Linux SSH 金鑰登入

#ssh -p 22168 brookadmin@192.168.240.148
#成功登入

Windows SSH 金鑰登入

1.附加金鑰到遠端管理工具,這邊使用 MobaXterm。
#開啟 MobaXterm,滑鼠右鍵 New session

#選擇 SSH 圖示
#輸入-遠端主機(Remote host)、使用者(Specify username),連線端口號(port),這邊端口號不是使用 SSH 預設的22 port,有修改過 port number 參考上次的筆記: Linux-CentOS7修改SSH Port Number & 增加安全性設定。
#點選 Advanced SSH settings
#勾選 Use private key ,並將私鑰加入,完成後點擊 OK。
#測試登入->金鑰開始驗證
#成功登入

留言