(一次比較艱辛的“摸魚”過(guò)程桌肴,但成功免密連接遠(yuǎn)程服務(wù)器之后感覺很不錯(cuò);噬浮!W蛊摺)
1水醋、效果圖
先領(lǐng)略一下最終的效果旗笔,
可以在VS Code中創(chuàng)建、刪除拄踪、編輯服務(wù)器端的文件蝇恶,當(dāng)然也有linux的命令行。還是挺方便的~
2惶桐、從VS Code的應(yīng)用擴(kuò)展商店添加Remote Development
插件
- ① 點(diǎn)擊左側(cè)欄下方的
extensions
圖標(biāo)
- ② 輸入
remote
撮弧,彈出相關(guān)擴(kuò)展 - ③ 找到
Remotem Development
,點(diǎn)擊install
(在這里一定要安裝Remotem Development
姚糊,包含的其他擴(kuò)展會(huì)自動(dòng)安裝)
安裝完成后贿衍,多了橢圓形標(biāo)記的Remote Explorer
圖標(biāo)。
在ENABLED
下會(huì)出現(xiàn)Remote
相關(guān)的5個(gè)插件救恨,如下圖所示:
3贸辈、配置Remote SSH
- ① 在VS Code中,
Ctrl + ,
肠槽,輸入show login terminal
擎淤,勾選
- ② 在VS Code中,
Ctrl + Shift + P
署浩,輸入remote-ssh
-
③ 通常選擇第一個(gè)揉燃,
- ④ 添加配置信息
這里IdentityFile
為下面步驟生成的本地私鑰路徑
如果有多個(gè)連接,可以配置多個(gè)筋栋。因此一臺(tái)PC可以連接到多個(gè)遠(yuǎn)程服務(wù)器端
4炊汤、配置免密登錄
VS Code通過(guò)SSH遠(yuǎn)程服務(wù)連接遠(yuǎn)程服務(wù)器,每次連接弊攘、打開文件夾抢腐、執(zhí)linux命令等都需要輸入密碼,非常麻煩襟交。
可以通過(guò)配置免密登錄避免每次操作時(shí)都輸入密碼迈倍。
4.1 本地PC端本地安裝SSH
Windows系統(tǒng)可以安裝OpenSSH或者通過(guò)Git安裝SSH,方法不在這里贅述捣域。
在命令行中輸入如下命令表示本地SSH安裝成功:
- ①
Win + R
-->cmd
-->確定
- ②
ssh
4.2 生成本地PC端密鑰
- ①
cd .\.ssh
啼染,進(jìn)入.ssh
目錄
- ②
ssh-keygen -t rsa
,生成密鑰焕梅。出現(xiàn)以下選項(xiàng)時(shí):
Enter file in which to save the key:直接回車
Enter passphrase:直接回車
Enter same passphrase again:直接回車
- ③
dir/b
查看創(chuàng)建好的密鑰文件
/b
是僅列出文件名稱
id_rsa
是密鑰
id_rsa.pub
是公鑰
記得回去將id_rsa
的路徑添加到3④的IdentityFile
中迹鹅!
4.3 上傳公鑰至服務(wù)器端個(gè)人所在的根目錄的.ssh/
下
由于是非root用戶,所以需要在遠(yuǎn)程服務(wù)器進(jìn)行以下步驟:
- ① 若不存在
.ssh/
贞言,手動(dòng)創(chuàng)建
mkdir .ssh
- ② 進(jìn)入
.ssh/
cd .ssh/
- ③ 使用Xftp等工具(或者
scp
命令)將id_rsa.pub
上傳至該目錄
- ④ 將
id_rsa.pub
的內(nèi)容追加至authorized_keys
cat id_rsa.pub >> authorized_keys
ls
authorized_keys
文件可以按行存儲(chǔ)多臺(tái)本地PC的公鑰斜棚,因此可以使用不同的本地PC連接同一個(gè)遠(yuǎn)程服務(wù)器端
- ⑤ 修改權(quán)限
修改authorized_keys
權(quán)限為600
chmod 600 authorized_keys
修改
.ssh/
權(quán)限為700
chmod 700 .ssh
在這里一定要修改以上二者的權(quán)限(解決方法,參考記一次ssh免密登錄踩坑and Debug之路),不然即使進(jìn)行下一步后弟蚀,在cmd命令行通過(guò)
ssh username@ip_adress -p port
免密登錄仍然失敗蚤霞,提示輸入密碼(debug提示參考SSH遠(yuǎn)程登錄主機(jī)失敗,求路過(guò)的高手指點(diǎn)迷津)
# 上面還有很多debug提示
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Trying private key: /root/.ssh/id_ecdsa
debug1: Trying private key: /root/.ssh/id_ed25519
debug1: Next authentication method: password
在服務(wù)器端查看sshd日志义钉,會(huì)出現(xiàn)類似下面的語(yǔ)句:
Authentication refused: bad ownership or modes for directory /root
原因是:~/.ssh
文件需要只供用戶自己讀昧绣、寫、執(zhí)行(權(quán)限為700
)断医,而其他用戶不可以有任何權(quán)限
- ⑥ 重啟服務(wù)器端SSH
方法1:由于是==非root==用戶滞乙,使用sudo
sudo service sshd restart
方法2:sudo
仍然沒(méi)有權(quán)限的可以請(qǐng)root用戶幫忙~
方法3:或者exit
退出此次登錄。隨后再重新登錄服務(wù)器即可鉴嗤。
5斩启、連接
-
① 新建連接
- ② 選擇
Linux
在這里如果連接失敗,可以重新啟動(dòng)VS Code - ③ 新建linux命令行終端
之后便可以達(dá)到本文開頭展示的效果啦~~
tips:3①醉锅、5②也可以通過(guò)設(shè)置settings.json
文件達(dá)到同樣的效果
"remote.SSH.showLoginTerminal": true, "remote.SSH.remotePlatform": { "pangu": "linux" }
References: