創作內容

0 GP

【程式設計】自動登入Linux主機 - ssh公私鑰認證

作者:雪音菌│2019-08-09 01:10:35│巴幣:0│人氣:653
SSH 公私鑰認證登入

2019/9/12 update:
請不要在公共電腦上使用 ssh key
同時請保管好自己的ssh key

懶得打帳號密碼登入 Linux 工作站 ewe
因為網路上很多資料可能都過時了,或是說明不夠清楚
索性自己打一篇作紀錄

Putty 有提供公私鑰認證登入的方式,簡單說就是
本機放 private key,在 Linux 主機上放置 public key
那麼使用 ssh 連線時,就可以直接連線,不需要輸入帳號密碼

這裡使用 putty 連線 Linux 主機
詳細方法如下

1.產生 public key 與 private key
在 Linux 主機上執行如下指令,產生 ssh 所需的 public 與 private key

ssh-keygen -f user001

這樣會產生名為 "user001.pub" 與 "user001" 的一組公私鑰
當然檔案名稱可以自行決定要取什麼
接著把 Linux 主機上面的 "user001" 這個 private key file 下載到你的電腦
這邊我是用 FileZilla 使用 SFTP 協定下載下來的,詳細方法這邊就不贅述

接著開啟 PuTTY Key Generator
這個程式通常在你安裝 PuTTY 主程式的資料夾內就可以找到
點選上方工具列裡面的「Conversions/Import Key」,把你剛剛下載下來的private key匯入PuTTY Key Generator 內。
接著按 [Save private key],將 private key 存成 putty 所要的格式
這裡假設存成的檔名為 "user001.ppk"


2.設定putty
到「Session」頁面
輸入要連線的主機的 IP 或 host name,並為這個 session 取名後按 [Save]


接著到「Connection/Data」頁籤的 Auto-login username 欄位內,填入你用來登入 Linux 主機的帳號名稱


到「Connection/SSH/Auth」頁籤的 Private key file for authorization 欄位,填入(or Browse)你在自己電腦上存放 private key 的位置


然後回到「Session」頁籤,找到你當初的 Saved Session,按下[Save]按鈕
將上述的設定儲存,非常重要,不然你剛剛的動作就是做白工
這邊我的範例是 "test linux – 192.168.153.128" 這個 Session


3.部屬public key
在Linux主機上使用 ssh-copy-id 指令將 public key 部屬到 Linux Server 上
user001.pub 是 public key 檔名,user001 是帳號,192.168.253.128是IP

ssh-copy-id -i user001.pub user001@192.168.253.128

部屬上去之後,Linux 主機上的 /home/user001/.ssh 目錄下,會出現一個名為 authorized_keys 的檔案,你的 public key 會被存在裡面。
如果這個檔案原本就存在,則你的 public key 會被 append 在檔案後面。

記得檢查 /home/user001 目錄的權限必須是700,.ssh 目錄權限也必須是 700
且 authorized_keys 這個檔案的權限必須是 600
.ssh 及 authorized_keys 的使用者和群組需要是 user001
權限錯誤在連線時可能會出現 "server refused our key" 的 error message

可能會需要用到的 Linux 指令:

檢查權限
ls -al

更改權限
chmod 600 authorized_keys

將 public key 增加到 authorized_keys 這個檔案裡
cat user001.pub >> authorized_keys

4.測試
開啟 putty 選擇一開始我們儲存的那個 Session,按 [Open] 進行連線
不需要輸入帳號密碼,即可看到如下範例畫面,表示已經登入成功。

ps. 如果一直無法登入,可以開啟 debug log 來查原因,在 /etc/ssh/sshd_config 檔案中,找到LogLevel INFO,將它改為 LogLevel DEBUG3。重新登入後,打開 /var/log/secure 檔查看log。



引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4488802
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:程式設計|ssh|linux|shell|開發技巧

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

喜歡★Yuki23329626 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【繪圖】紫羅蘭永恆花園 ... 後一篇:【繪圖】水豚君...

追蹤私訊切換新版閱覽

作品資料夾

san0196
《我是靈異人》最新一話更新囉!歡迎大家來我的小屋看看喔!看更多我要大聲說6小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】