天天看點

VSCode Remote-SSH配置免密登入踩坑

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

    打開指令行,輸入

    ssh-keygen

    ,一路回車之後有類似下圖的結果(摘自部落格 vscode設定remote-ssh并免密登入):
    VSCode Remote-SSH配置免密登入踩坑
    圖中紅框路徑代表Private Key所在路徑,同樣可以看到

    /c/Users/15333/.ssh/id_rsa.pub

    路徑,這是Public Key路徑。注意:為了保證免密登入,這裡Enter passphrase (empty for no passphrase)處一定要直接回車,即不輸入密碼。
  • 上傳Public Key到機器B(Linux伺服器)

    上傳的方式有多種,最簡單的是直接用記事本打開

    /c/Users/15333/.ssh/id_rsa.pub

    ,然後拷貝内容直接粘貼到伺服器上。

    粘貼到哪裡呢?在使用者家目錄的

    .ssh/authorized_keys

    檔案下。為了簡便起見,可以在Linux伺服器終端輸入下述指令來建立

    authorized_keys

    檔案:
    mkdir -p ~/.ssh
    touch ~/.ssh/authorized_keys
               
    接下來用VScode打開

    ~/.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設定

  • ctrl + shift + P

    打開SSH的config檔案
    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):保證

    ~/.ssh

    權限是700,

    ~/.ssh/authorized_keys

    權限是600
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
               
  • 修改VSCode Config:記得添加

    IdentityFile

    路徑,見2.3節

OK,現在就可以起飛了🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫🛫

繼續閱讀