非root用戶配置VS Code Remote-SSH - - windows系統(tǒng)

(一次比較艱辛的“摸魚”過程,但成功免密連接遠(yuǎn)程服務(wù)器之后感覺很不錯!?。。?/p>

1、效果圖

先領(lǐng)略一下最終的效果,

effect_picture.png

可以在VS Code中創(chuàng)建、刪除、編輯服務(wù)器端的文件,當(dāng)然也有linux的命令行。還是挺方便的~

2、從VS Code的應(yīng)用擴(kuò)展商店添加Remote Development插件

  • ① 點(diǎn)擊左側(cè)欄下方的extensions圖標(biāo)
    extensions.png
  • ② 輸入remote,彈出相關(guān)擴(kuò)展
  • ③ 找到Remotem Development,點(diǎn)擊install
    (在這里一定要安裝Remotem Development,包含的其他擴(kuò)展會自動安裝)
    fig2_1.png

    安裝完成后,多了橢圓形標(biāo)記的Remote Explorer圖標(biāo)。
    Remote-Explorer.png

    ENABLED下會出現(xiàn)Remote相關(guān)的5個(gè)插件,如下圖所示:
    fig2_2.png

3、配置Remote SSH

  • ① 在VS Code中,Ctrl + ,,輸入show login terminal,勾選
    fig3_1.png
  • ② 在VS Code中,Ctrl + Shift + P,輸入remote-ssh
    fig3_2.png
  • ③ 通常選擇第一個(gè),


    fig3_3.png
  • ④ 添加配置信息
    fig3_4.png

    這里IdentityFile為下面步驟生成的本地私鑰路徑
    如果有多個(gè)連接,可以配置多個(gè)。因此一臺PC可以連接到多個(gè)遠(yuǎn)程服務(wù)器端

4、配置免密登錄

VS Code通過SSH遠(yuǎn)程服務(wù)連接遠(yuǎn)程服務(wù)器,每次連接、打開文件夾、執(zhí)linux命令等都需要輸入密碼,非常麻煩。
可以通過配置免密登錄避免每次操作時(shí)都輸入密碼。

4.1 本地PC端本地安裝SSH

Windows系統(tǒng)可以安裝OpenSSH或者通過Git安裝SSH,方法不在這里贅述。
在命令行中輸入如下命令表示本地SSH安裝成功:

  • Win + R --> cmd --> 確定
  • ssh
    fig4.1_1.png

4.2 生成本地PC端密鑰

  • cd .\.ssh,進(jìn)入.ssh目錄
    fig4.2_1.png
  • ssh-keygen -t rsa,生成密鑰。出現(xiàn)以下選項(xiàng)時(shí):
    Enter file in which to save the key:直接回車
    Enter passphrase:直接回車
    Enter same passphrase again:直接回車
    fig4.2_2.png
  • dir/b查看創(chuàng)建好的密鑰文件
    /b 是僅列出文件名稱
    id_rsa是密鑰
    id_rsa.pub是公鑰
    fig4.2_3.png

    記得回去將id_rsa的路徑添加到3④的IdentityFile中!

4.3 上傳公鑰至服務(wù)器端個(gè)人所在的根目錄的.ssh/

由于是非root用戶,所以需要在遠(yuǎn)程服務(wù)器進(jìn)行以下步驟:

  • ① 若不存在.ssh/,手動創(chuàng)建
mkdir .ssh
fig4.3_1.png
  • ② 進(jìn)入.ssh/
cd .ssh/
fig4.3_2.png
  • ③ 使用Xftp等工具(或者scp命令)將id_rsa.pub上傳至該目錄
    fig4.3_3.png
  • ④ 將id_rsa.pub的內(nèi)容追加至authorized_keys
cat id_rsa.pub >> authorized_keys
ls

fig4.3_4.png

authorized_keys文件可以按行存儲多臺本地PC的公鑰,因此可以使用不同的本地PC連接同一個(gè)遠(yuǎn)程服務(wù)器端

  • ⑤ 修改權(quán)限
    修改authorized_keys權(quán)限為600
chmod 600 authorized_keys

fig4.3_5.png

修改.ssh/權(quán)限為700

chmod 700 .ssh

fig4.3_6.png

在這里一定要修改以上二者的權(quán)限(解決方法,參考記一次ssh免密登錄踩坑and Debug之路),不然即使進(jìn)行下一步后,在cmd命令行通過ssh username@ip_adress -p port免密登錄仍然失敗,提示輸入密碼(debug提示參考SSH遠(yuǎn)程登錄主機(jī)失敗,求路過的高手指點(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日志,會出現(xiàn)類似下面的語句:

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仍然沒有權(quán)限的可以請root用戶幫忙~
方法3:或者exit退出此次登錄。隨后再重新登錄服務(wù)器即可。

5、連接

  • ① 新建連接


    fig5_1.png
  • ② 選擇Linux
    fig5_2.png

    在這里如果連接失敗,可以重新啟動VS Code
  • ③ 新建linux命令行終端
    fig5_3.png

    之后便可以達(dá)到本文開頭展示的效果啦~~
    tips:3①、5②也可以通過設(shè)置settings.json文件達(dá)到同樣的效果
    "remote.SSH.showLoginTerminal": true, "remote.SSH.remotePlatform": { "pangu": "linux" }
    tips.png

References:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容