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

【Linux 網路遠控 #10】透過建立 ssh authorized_keys 讓 VScode 繞過輸入 ssh 密碼 or 達成 ssh 免密碼登入 (updated: 2022/9/12)

ssh# 前言

VS code 有時候透過 GUI 嘗試 ssh 登入遠端時,
會碰到密碼輸入很多次都沒辦法成功的現象。

看到網路上的分享,據說是 VScode GUI 在 ssh 連線時,
會有密碼沒辦法輸入 / 輸入了「正確密碼」卻顯示「密碼錯誤」的狀況。

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

vscode 設定

同樣的設定我們也可以直接更改 ~/.ssh/config 的設定檔,
我們也可以透過 VScode 設定的路徑,直接修改這個設定檔。

( IdentityFile 指的是 local 私鑰的位置,當我們要管理多組公鑰私鑰時,
可以修改這個來管理。)

  • 我們可以從 VScode ssh remote 那邊打開 ~/.ssh/config 的設定檔
Host 192.168.0.1
  HostName 192.168.0.1
  User ubuntu
  IdentityFile ~/.ssh/id_rsa

完成!

到這邊基本上就完成了,測試一下 VScode 連線還需不需要打密碼吧!

windows 連線至 mac, linux (處理麻煩的 windows 路徑)

step 1. (windows 上) ssh-keygen

  • 先建立我們的公私鑰
ssh-keygen
  • 複製出公鑰
cat .\.ssh\id_rsa.pub

step 2. (mac 上) 貼上公鑰(.pub) 的內容至 authorized_keys

打開你的 mac, linux,貼上剛剛公鑰(.pub) 的內容 至 「~/.ssh/authorized_keys」中

vim ~/.ssh/authorized_keys

step 3. 完成!

照上面的幾個步驟後,我就已經可以直接免密碼登入囉!

mac, linux 連線至 windows (處理麻煩的 windows 路徑)

windows 的路徑與 linux, mac 都不太一樣… 我們需要另外設定,
但有點太麻煩,日後再慢慢更新

step 1. 開啟 windows ssh 服務

之前有完整教學了,因為篇幅的關係,這邊直接提供連結:

【Windows】windows 開啟 ssh 的方式