介紹
visual studio code remote - ssh 可以通過ssh連接遠(yuǎn)程主機、虛擬機,打開遠(yuǎn)程文件夾,并利用vscode 的插件優(yōu)勢進(jìn)行遠(yuǎn)程開發(fā)、調(diào)試等。
步驟
一、配置環(huán)境
因為remote-ssh 的ssh連接是基于openssh實現(xiàn)的,以及后續(xù)我們需要使用生成ssh密鑰需要git,所以我們需要準(zhǔn)備:
- OpenSSH
- Git版本不低于1.9
如果你已經(jīng)安裝了以上環(huán)境,請移步到下一個步驟。
1、git安裝
可以參考這篇博客:Git 詳細(xì)安裝教程(詳解 Git 安裝過程的每一個步驟)
git安裝過程中,會出現(xiàn)是否需要捆綁OpenSSH,根據(jù)自己的使用習(xí)慣選擇。
2、OpenSSH安裝
上面選捆綁請忽略。
你可以通過這篇微軟的文檔進(jìn)行安裝:安裝 OpenSSH
不過我這里也會也會贅述一遍步驟:
#用管理員身份運行PowerShell
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
# 安裝OpenSSH客戶端 (這里我們只需要客戶端)
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
3、確認(rèn)安裝
當(dāng)你安裝成功后,可以在控制臺確認(rèn)是否安裝
git
ssh
二、在vscode添加remote ssh插件
選擇左側(cè)欄的擴(kuò)展,并搜索remote ssh
它大概長這樣,點擊安裝
安裝成功后,在左側(cè)欄會出現(xiàn)遠(yuǎn)程連接的圖標(biāo),點擊后選擇ssh旁加號便可以進(jìn)行連接。
三、連接
選擇連接后將會出現(xiàn)以下內(nèi)容
輸入 ssh 主機用戶名@主機地址 -A
連接遠(yuǎn)程主機(輸入-A
在配置文件中會產(chǎn)生ForwardAgent yes
目的是希望使用本地電腦里的密鑰登錄,且不想把這個密鑰發(fā)送到堡壘機)進(jìn)行配置。
此時,右下角會顯示連接或者打開配置文件的選項,你可以直接連接,也可以打開配置文件,(第一次好像會讓你選擇一個并生成配置文件,直接選擇user/用戶名/.ssh下即可)
如果打開配置文件會出現(xiàn)一下內(nèi)容
選擇密碼認(rèn)證
沒有點直接連接,點擊遠(yuǎn)程旁邊的刷新按鈕就可以。
選擇主機連接,選擇平臺,輸入密碼,就可以遠(yuǎn)程連接到遠(yuǎn)程主機了
(如果平臺選擇錯誤可以在vscode設(shè)置中輸入remote.SSH.remotePlatform
修改它)
選擇連接后,會產(chǎn)生一個新的空窗口,你可以始終參考左下角查看查看你的連接狀態(tài)
連接成功后,可以在資源管理器打開你的項目文件。
不過使用密碼驗證,每次連接都要重新輸入密碼,十分麻煩,可以選擇,使用ssh密鑰的身份驗證,就不用反復(fù)輸入。
選擇ssh密鑰認(rèn)證
1、在本地終端生成密鑰
這里提供兩種方法
方法1:直接輸入ssh-keygen
,跟著程序的引導(dǎo)來選擇
ssh-keygen
方法2:預(yù)先指定參數(shù),請確保你已經(jīng)安裝了git,且版本大于1.9
# -t 加密類型 -b 指定指定要創(chuàng)建的密鑰的位數(shù)
ssh-keygen -t rsa -b 4096
更多參數(shù)設(shè)置:oracle手冊----ssh-keygen
這里我演示第二種。
口令默認(rèn)為空,你可以選擇使用口令保護(hù)私鑰文件。如果你不想在每次使用 SSH 協(xié)議訪問倉庫時,都要輸入用于保護(hù)私鑰文件的口令,可以在創(chuàng)建密鑰時,輸入空口令,即直接回車。
此處私鑰保存在C:\Users\20447/.ssh/id_rsa
公鑰保存在C:\Users\20447/.ssh/id_rsa.pub
2、將公鑰復(fù)制到遠(yuǎn)程主機,并安裝
將公鑰復(fù)制到遠(yuǎn)程主機的~/.ssh文件下。
你可使用FTP或者SFTP傳輸?shù)街鳈C,這里我用FileZilla作為文件傳輸工具(如果你對使用FileZilla管理文件有需求的話,使用時建議使用root用戶登入,因為一些文件操作權(quán)限不夠無法操作)
在遠(yuǎn)程主機端上安裝公鑰
cd .ssh
cat id_rsa.pub >> authorized_keys #安裝公鑰
設(shè)置文件權(quán)限提高安全性
chmod 600 authorized_keys #所有者可讀寫
chmod 700 ~/.ssh #所有者可讀可寫可執(zhí)行
3、回到 vscode 在之前配置文件中添加 IdentityFile $私鑰路徑$
選SSH旁邊的設(shè)置快速移至config
文件
保存后重新連接,就不用一直用密碼認(rèn)證了。
四、關(guān)于配置文件
前面說過remote-ssh時基于openssh的插件,所以配置文件遵循 openssh SSH 配置文件格式(sshd_config),可以使用ssh格式進(jìn)行配置。
這里選擇只列舉常用的配置格式,如果你有想了解或者有更多需求請,參考sshd_config(5) — Linux manual page
Host $遠(yuǎn)程主機名$ #可以自定義,目的是知道自己用什么主機
HostName $遠(yuǎn)程主機IP$
User $用戶名$
Port $ssh端口$ #不寫默認(rèn)22
IdentityFile $本機SSH私鑰路徑$
ForwardAgent yes $希望使用本地電腦里的密鑰登錄,且不想把這個密鑰發(fā)送到堡壘機,之前添加 -A生成$
如果你需要連接多個主機,在配置文件,按上述配置添加多個這個
Host $遠(yuǎn)程主機名1$
HostName $遠(yuǎn)程主機IP1$
...
Host $遠(yuǎn)程主機名2$
HostName $遠(yuǎn)程主機IP2$
...
Host n...
五、安裝插件到遠(yuǎn)程主機
在連接上遠(yuǎn)程主機后,可以在安裝頁面主動選擇安裝位置。
根據(jù)自己的需要在vscode安裝、卸載或禁用在遠(yuǎn)程主機中的插件,為遠(yuǎn)程開發(fā)提供便利。
六、關(guān)于可能出現(xiàn)的問題,導(dǎo)致連接失敗
因為我按上述操作時沒有出現(xiàn)問題,關(guān)于問題這一點,我建議出錯時,搜索時使用openssh作為關(guān)鍵詞作為出發(fā)點,并且留意下角的輸出窗口,判斷錯誤類型。
一些錯誤問題,可以下方參考1
中的解決細(xì)節(jié)
這里提供一種錯誤解決方法
- 如果你因為某種原因重置系統(tǒng)或者重置ssh,導(dǎo)致無法連接
可能是因為原先的主機密匙和現(xiàn)在的主機密匙不一致,
可以嘗試刪除 c:\user\用戶名.ssh 中的known_hosts
文件,
該方法有點粗糙,如果你有新的見解,歡迎在評論區(qū)留言。
七、其他連接方式
除了ssh連接方式,還有WSL,Dev Containers等連接方式,VS code均有擴(kuò)展,你可以安裝自己的開發(fā)習(xí)慣選擇文章來源:http://www.zghlxwxcb.cn/news/detail-517929.html
參考:
1、VSCode使用Remote SSH連接遠(yuǎn)程服務(wù)器
2、使用 SSH 進(jìn)行遠(yuǎn)程開發(fā)文章來源地址http://www.zghlxwxcb.cn/news/detail-517929.html
到了這里,關(guān)于vscode 使用ssh進(jìn)行遠(yuǎn)程開發(fā) (remote-ssh)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!