項目 widget-area-1 尚未註冊或是沒有一個 view.php 檔案.
項目 widget-area-1 尚未註冊或是沒有一個 view.php 檔案.
項目 search-input 尚未註冊或是沒有一個 view.php 檔案.

【Linux 網路遠控 #8】修改 ssh config 取主機暱稱 | 透過 ssh authorized_keys 公私鑰,達成 ssh 免密碼登入

前言

當要登入的電腦越來越多,
有時候就會有想要給主機取代稱的需求,
這篇我們主要講

  • 替主機取匿名
  • 透過 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 相關文章整