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 ssh 服務 (記得要開啟管理員權限的 powershell)
Start-Service sshd
(mac, linux 連線至 windows) step 2. windows 找到 ip (hostname 目前研究到找得到,但還沒有找到能讓 client 端能解析的方法)
- 找 ip
找 「192.168」 開頭的那個
ipconfig
- 如果要找 username
powershell 輸入
echo $env:USERNAME
或者是使用以下指令 (記得只需要看尾巴,帳號名有點被截斷感覺的部分)
whoami
- 如果要找 hostname (但目前研究到此,client 端仍無法解析這個 hostname)
powershell 輸入
hostname
先嘗試 ssh 連線看看
ssh username@ip
# 目前碰到無法解析 hostname 的問題,
# 無法使用 ssh username@hostname
發現已經可以連線了! 這是一件好事!
注意,如果這個步驟還不能連線,應該要先檢查為什麼不能連線,再繼續往下做
(windows 作為 server) windows 設定 authorized_keys
請將 authorized_keys 放置於以下路徑
C:\Users\<username>\.ssh\authorized_keys
(windows 作為 server) windows 額外的安全性設定
先放可以參考的網站如下:
- How do I find my username and servername for windows SSH server
- Configuring SSH Public Key Authentication on Windows
可以先觀察:
cat "C:\ProgramData\ssh\sshd_config"| Select-String "Authentication"
觀察 PubkeyAuthentication yes 是否有被註解
修改 sshd_config
修改以下檔案:
C:\ProgramData\ssh\sshd_config
修改:
#PubkeyAuthentication yes 取消這行的註解
#StrictModes yes 取消註解,並改為 StrictModes no
目前到這邊還沒試成功,改天有空再繼續試,會再更新
(windows 安全性比較高,但也真的比較麻煩啊…)
Reference
- [教學] 產生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 相關文章整理⭐: | |
1. | 【VScode】VScode實用快速鍵總整理 |
2. | 【VScode】直接把 coding 的「視窗」搬回家,不要再用慢慢的遠端桌面了! VScode ssh 遠端辦公 |
⭐Sublime 文章連結整理⭐: | |
1. | 【Sublime】Sublime 實用快速鍵總整理 |
2. | 【Sublime】Python 縮排小技巧 (很爛但實用) 快速將 tab 改成「4格空白」的方法 |
3. | 【Sublime】Sublime 將縮排 “tab” 改成 4格空白 的方法 (圖文說明) sublime indent 4 spaces |
4. | 【Sublime】在 sublime 啟動終端機, Sublime terminal – 圖文教學 安裝/解除安裝 terminus |
⭐vim 相關文章整理⭐: | |
1. | 【Linux】linux/ubuntu/mac vim 的 新手/初學者 的基礎使用指令 與 個人常用功能總整理 (持續更新) |
⭐【喜歡我的文章嗎? 歡迎幫我按讚~ 讓基金會請創作者喝一杯咖啡! 】 如果喜歡我的文章,請幫我在下方【按五下Like】 (Google, Facebook 免註冊),會由 「LikeCoin」 贊助作者鼓勵繼續創作,讀者們「只需幫忙按讚,完全不用出錢」哦! ![]() |
[…] 【VScode】透過建立 ssh authorized_keys 讓 VScode 繞過輸入 ssh 密碼 or 達成 ssh 免密… […]
[…] 【VScode】透過建立 ssh authorized_keys 讓 VScode 繞過輸入 ssh 密碼 or 達成 ssh 免密… […]