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 服務
之前有完整教學了,因為篇幅的關係,這邊直接提供連結: