VSCode Remote-SSH配置免密登入踩坑
-
- 1. 參考
- 2. 基本流程
-
- 2.1 機器A(Windows用戶端)
- 2.2 機器B(Linux伺服器)
- 2.3 機器A(Windows用戶端)的VSCode設定
- 3. 踩坑總結
相關教程很多,但要麼備援,要麼不清晰,部落客在這篇文章中将首先列出相關參考資料,其次給出較為清晰的流程(OS),最後列出坑點,避免大家二次踩坑。
1. 參考
- vscode設定remote-ssh并免密登入
- How to save ssh password to vscode?
- SSH 三步解決免密登入
2. 基本流程
假設從機器A(Windows用戶端)免密登入機器B(Linux伺服器)
2.1 機器A(Windows用戶端)
-
生成Public Key與Private Key
打開指令行,輸入
,一路回車之後有類似下圖的結果(摘自部落格 vscode設定remote-ssh并免密登入):ssh-keygen
圖中紅框路徑代表Private Key所在路徑,同樣可以看到VSCode Remote-SSH配置免密登入踩坑
路徑,這是Public Key路徑。注意:為了保證免密登入,這裡Enter passphrase (empty for no passphrase)處一定要直接回車,即不輸入密碼。/c/Users/15333/.ssh/id_rsa.pub
-
上傳Public Key到機器B(Linux伺服器)
上傳的方式有多種,最簡單的是直接用記事本打開
/c/Users/15333/.ssh/id_rsa.pub
,然後拷貝内容直接粘貼到伺服器上。
粘貼到哪裡呢?在使用者家目錄的
檔案下。為了簡便起見,可以在Linux伺服器終端輸入下述指令來建立.ssh/authorized_keys
檔案:authorized_keys
接下來用VScode打開mkdir -p ~/.ssh touch ~/.ssh/authorized_keys
粘貼内容儲存即可~/.ssh/authorized_keys
2.2 機器B(Linux伺服器)
接下來在機器B上要繼續修改檔案權限并重新開機
ssh
服務:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
service sshd restart
2.3 機器A(Windows用戶端)的VSCode設定
-
打開SSH的config檔案ctrl + shift + P
VSCode Remote-SSH配置免密登入踩坑 - 找到機器B對應的Host,例如:
Host B HostName 127.0.0.1 User deadpool
- 為其添加Private Key檔案路徑(IdentityFile,自行修改):
Host B HostName 127.0.0.1 User deadpool IdentityFile "C:\Users\15333\.ssh\id_rsa"
- 此時再使用VSCode Remote-SSH登入即可免密
3. 踩坑總結
- 密鑰空密碼(機器A):在生成Public/Private Key階段,為了保證免密登入,Enter passphrase (empty for no passphrase)處一定要直接回車,即不輸入密碼 ,見上述2.1節
- 檔案權限(機器B):保證
權限是700,~/.ssh
權限是600~/.ssh/authorized_keys
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
- 修改VSCode Config:記得添加
路徑,見2.3節IdentityFile
OK,現在就可以起飛了🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫