- 昨天從實驗室的學長那里分到了一個遠程服務器的賬號,一個賬號是可以直接連接的,一個賬號是需要通過第一個賬號跳轉過去的。??
- 作為VScode的堅定支持者,中午研究了一會如何配置 ssh 遠程連接,因為第一次用這個東西,經(jīng)歷了一些試錯,遂記錄一番。??
- Prerequisites : 在閱讀之前,希望你已經(jīng)在自己的電腦上(無論是 Windows 還是 Linux 上)安裝了
ssh
,在終端輸入ssh
不會報錯undefined
;以及推薦配置一個ssh-copy-id
的工具(我的 Linux 上面是自帶的),這個如果沒有安裝也問題不是很大~??
1. 插件安裝:Remote-SSH
如圖所示,extension 輸入remote,點擊安裝。安裝完畢后重新加載(或者重新啟動),能看到界面左側側邊欄多了一個圖標。
因為我已經(jīng)完成配置,所以我的列表不是空的。然后點擊 SSH 欄的設置按鈕,會彈出窗口要求輸入希望讀取的配置文件路徑。
在 Linux 下默認的路徑一般是 /home/your-username/.ssh/config
和 /etc/ssh/ssh_config
,我的電腦只有自己用,所以如何選擇不是本質的事情。對于 Windows 系統(tǒng),如果不了解如何手動配置,直接選擇默認路徑就好。
2. 插件配置
第一次打開 config 文件應當是空的。config 文件是 VScode 連接遠程服務器的配置文件,需要你在里面寫相應的信息:
主要配置字段 | 含義與備注 |
---|---|
Host | 在VScode上標識不同的主機名,自定義就可以 |
HostName | 遠程主機的域名或者IP,test@example.com 或者 xxx.xxx.xx.x |
User | 顧名思義,你的用戶名 |
Port | 端口號 |
ProxyJump(*) | 跳轉的中間 Host |
IdentityFile(*) | ssh-key文件 |
其中最后兩項對于一次連接的服務器來說并不必要。如果你不覺得輸入密碼是比較麻煩的事情,可以略過關于 ssh-key
的介紹。如果你不知道自己賬號的端口號/用戶名,建議去問一下給你賬號的這個人。
當然如果你希望了解更多的配置,可以參考這個鏈接或者自行 google or baiduUsing the SSH config file。
對于一次連接的服務器,這里提供一個示例。
Host xxxxx
HostName 000.000.000.000
User xxx
Port 22
點擊保存,然后重啟 VScode,或者點側邊欄 remote 的刷新按鈕,這個時候 SSH 的列表里應該就會出現(xiàn)你需要連接的服務器了。
3. 如何通過 ssh-key 免去輸入密碼的煩惱?
打開終端,輸入 ssh-keygen
,生成密鑰對;
Enter file in which to save the key : 默認存儲位置在 ~/.ssh/id_rsa
,你可以自己定義;
第一次配置是不會遇到任何關于 overwrite 的詢問的,如果你先前已經(jīng)在這個路徑生成了密鑰,會詢問你是不是要覆蓋原有密鑰,這個就按照你自己的需求就可以。
Enter passphrase : 一個增強安全性的密碼,可以不填,直接回車;
然后就會提示你已經(jīng)保存成功~
接下來你需要做的事情,就是讓這個密鑰對(包括公鑰(.pub)、私鑰)代替密碼成為遠程服務器識別你的身份的工具。
3.1 你可以使用 ssh-copy-id
$ ssh-copy-id xxx@example.com
這個操作會將本地的公鑰發(fā)放到遠程服務器上。在執(zhí)行這個命令的過程中需要你輸入服務器賬號的密碼,來驗證你的身份。正常情況下執(zhí)行成功后會有類似于如下字段:
$ you can try "ssh xxx@example.com" to check ...
然后直接連接,應該就沒有問題了~
3.2 你不能使用 ssh-copy-id
解決方法也比較簡單,通過命令行或者通過 VScode + 手動輸入密碼的方式連接到你的服務器,打開/home/ 文件夾。在這個文件夾下找到 /home/xxx/.ssh/
文件夾(/home/
下可能有不少和你在一起使用服務器的同學,注意別打開到別人的文件夾里面去了 doge),新建一個 authorized_keys
文件,如下圖:
打開這個文件,把你在上一步里面生成的公鑰 copy 下來(帶有.pub
后綴的,內容以 ssh-rsa
開頭的),粘貼到這里。
最后,不論你采用上述何種方式,只要你使用了 ssh-key,都需要在 config 文件里加入 IdentityFile=(your path)
,這里的路徑是本地私鑰的路徑。(如果公鑰是 id_rsa.pub
,私鑰就是 id_rsa
,不要搞錯~)
然后就可以愉快地一鍵登陸啦~
4. 配置含有中間服務器的 ssh-key
4.1 手動輸入密碼登錄的配置方法
假設你的本地機器叫 A,你需要經(jīng)過一個代理服務器 B 來連接到服務器 C,
修改 config
文件類似于以下格式:
Host whateveryoulikeforb
HostName B
User username
Port bport
Host whateveryoulikeforc
HostName C
User username
# 可能沒有 port 選項,如果你不確定可以問一下給你賬號的人
ProxyJump B # 加上這一句,很本質
4.2 自動登錄(仍然用 ssh-key 的方法)
比較簡單。仍然假設你需要經(jīng)過 B 連接到 C。注意到,先前 ssh-keygen
生成的密鑰是保存在本地,也就是 A 上的。一步配置的操作是把公鑰 copy 到 B 的 /home/xxx/.ssh/authorized_keys
文件內,那么這里二步配置的操作就是在 C 的對應文件夾內也新建一個/home/xxx/.ssh/authorized_keys
文件,仍然把公鑰 copy 到里面。最后記得修改配置文件。
Host whateveryoulikeforb
HostName B
User username
Port bport
IdentityFile ~/.ssh/id_rsa
Host whateveryoulikeforc
HostName C
User username
# 可能沒有 port 選項,如果你不確定可以問一下給你賬號的人
ProxyJump B # 加上這一句,很本質
IdentityFile ~/.ssh/id_rsa # 兩個遠程服務器上存儲的公鑰相對路徑都是 ~/.ssh/id_rsa
然后回到 VScode 主界面,點擊服務器列表上的連接,就可以一鍵登錄直接使用了!文章來源:http://www.zghlxwxcb.cn/news/detail-455907.html
5. 備注
我也是第一次接觸到遠程服務器的使用,下午查了很多資料,關于 jumpserver 的配置好像沒有很多文章涉及到,于是我就自己寫下來了(當然可能是我沒有找到)??
所以如果這篇文章有幫到你,記得點贊 doge
或者你在配置的時候遇到了什么問題以及為可能哪里寫錯了,歡迎 dd 我改正 orz~文章來源地址http://www.zghlxwxcb.cn/news/detail-455907.html
到了這里,關于VScode + ssh 連接遠程服務器(普通 server + 代理 server)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!