前言
當要登入的電腦越來越多,
有時候就會有想要給主機取代稱的需求,
這篇我們主要講
- 替主機取匿名
- 透過 ssh authorized_keys 公私鑰,達成免密碼登入
這篇文的前一篇文章,有講到重複的 ssh authorized_keys 概念,可參考:
【Linux 網路遠控 #10】透過建立 ssh authorized_keys 讓 VScode 繞過輸入 ssh 密碼 or 達成 ssh 免密碼登入 (updated: 2022/9/12)
ssh authorized_keys 介紹
這裡只簡單介紹概念,
在密碼學裡面,我們經常使用一組公鑰搭配私鑰的方式來進行配對驗證密碼。
這裡我們就要進行這樣的操作,比喻來說
公鑰就是可以給別人的 (類似鎖頭),
私鑰我們要自己留著 (類似鑰匙)。
當公鑰與私鑰配對時,就可以解開密碼鎖。 (這觀念不完全正確,但可以簡易理解我們大概在幹嘛)
本地端,處理 local (client) 的私鑰
主要我們要產生公鑰與私鑰。記得,公鑰我們等等要給遠端拿著。
ssh-keygen
預設應該會將檔案產生在 ~/.ssh 底下,
檔名預設為 id_rsa,而 id_rsa.pub 為公鑰
我們打開 id_rsa.pub ,應該會看到一串 ssh-rsa 開頭的東西,
我們複製整段內容。
遠端,remote (server) 放上我們的公鑰
複製剛剛上面我們所說的 ssh-rsa 開頭的文字,
貼在遠端的 ~/.ssh/authorized_keys 的最後面,
(如果沒有這個檔案的話,請自己新建一個)
可能會用到的提示指令 (將內容加至檔案後面)
echo "public_key_string" >> ~/.ssh/authorized_keys
ssh config 設定
同樣的設定我們也可以直接更改 ~/.ssh/config 的設定檔,
我們也可以透過 VScode 設定的路徑,直接修改這個設定檔。
( IdentityFile 指的是 local 私鑰的位置,當我們要管理多組公鑰私鑰時,
可以修改這個來管理。)
- 我們可以從 VScode ssh remote 那邊打開 ~/.ssh/config 的設定檔
或是直接編輯
vim ~/.ssh/config
修改以下內容:
Host 192.168.0.1
HostName 192.168.0.1
User ubuntu
IdentityFile ~/.ssh/id_rsa
進階:取主機暱稱
剛剛上面我們已經完成的內容,我們可以快速地與遠端主機建立連線,
但這樣還不夠方便,當我們如果有很多主機要管理的時候,
就會碰到不夠方便的情況 (要一直瘋狂的記憶 ip)。
但當然有方便管理的方式,
我們可以替主機取我們自己想要的暱稱,
這樣我們就可以快速連線了!
修改也十分簡單,照上面的內容,我們可以修改成:
Host myremote
HostName 192.168.0.1
User ubuntu
IdentityFile ~/.ssh/id_rsa
這樣,我們以後只要輸入 ssh myremote,就可以快速地進行連線囉!
進階2:搭配 hostname 運用,看起來更俐落!
在我的另外一篇文章當中,有提到如何運用 hostname 進行遠端主機連線,
【Linux 網路遠控 #7】在 terminal 中尋找 username, hostname 作為 ssh 連線的方式 (以連線到 raspberrypi 為例)
搭配上述的概念,我們就可以把 ssh config 修改成:
Host myremote
HostName <hostname>
User <username>
IdentityFile ~/.ssh/id_rsa
這樣就可以輕鬆地進行 ssh 連線囉!
Reference
- 【VScode】透過建立 ssh authorized_keys 讓 VScode 繞過輸入 ssh 密碼 or 達成 ssh 免密碼登入
- 【Linux】在 terminal 中尋找 username, hostname 作為 ssh 連線的方式 (以連線到 raspberrypi 為例)
- [教學] 產生SSH Key並且透過KEY進行免密碼登入
- 使用VSCode Remote透過 SSH 進行遠端開發
- Remote SSH: Tips and Tricks
- How do I find my username and servername for windows SSH server
- Configuring SSH Public Key Authentication on Windows
⭐文字(程式碼) 編輯器 相關文章整理⭐: | |
---|---|
⭐VScode 相關文章整 |