由于linux服務器大部分都是基于命令行的操作,缺乏比較方便好用的編輯工具,對于經常在linux服務器上做開發的同學來說直接在服務器上進行開發或配置文件的修改還不是特別的方便。雖然linux上有vi或vim比起圖形化的編輯工具體驗感還是不是很好。作為程序員常用的宇宙第一的VScode就提供了相應的插件可以通過ssh遠程連接到服務器上直接編輯服務器上相應的文件,極大提高了在服務器上開發或修改配置文件的效率和體驗感。本文就來介紹通過VScode對Ubuntu用root賬號進行SSH遠程連接直接在服務器上進行開發。
一、安裝VScode的ssh擴展插件
Remote-SSH 擴展 允許你將任何帶有 SSH 服務器的遠程機器用作你的開發環境。這可以在多種情況下極大地簡化開發和故障排除:
- 在部署目標操作系統上開發?,或者使用比本地機器更大、更快或更專業化的硬件進行開發。
- 輕松切換不同的遠程開發環境,并安全地進行更新?,而無需擔心影響本地機器。
- 從多臺機器或不同位置訪問現有的開發環境。
- 調試運行在其他地方(例如客戶現場或云端?)的應用程序。
在VScode的編輯器界面在Extension中搜索ssh排名前三的Remote-SSH、Remote - SSH: Editing Configuration Files、Remote Explorer是微軟官方的ssh擴展插件,都安裝一下。
安裝好了后就會在左側的導航看到Remote Exploer
在SSH中點“+” 后就可以在上面的導航輸入框中輸入要ssh連接服務器的命令。如:ssh xiejava@192.168.0.30
意思就是通過xiejava的用戶名ssh登錄到192.168.0.30的服務器。
輸入正確的口令后,表示服務器的圖標變亮就意味著已經通過SSH連上了服務器了。
連上服務器后就可以通過命令來對服務器進行操作,也可以直接打開服務器上的文件進行操作了。
這樣就可以直接在服務器上直接編輯文件,直接在命令行中輸入命令執行,直接看到執行結果,簡直不要太爽。
一般的教程到這里就結束了。但是有些Linux是默認不能使用root用戶登錄的如Ubuntu,如果不用root用戶登錄只能訪問到登錄用戶的文件夾,如我是用xiejava登錄的就只能訪問到/home/xiejava的目錄,只能在這個目錄下新建和編輯相應的文件,而且每次打開編輯操作文件都要輸入登錄密碼,作為服務器上的開發來說這顯然是不可接受的。所以我們要用root賬號進行ssh進行遠程連接。
二、開啟Ubuntu的root賬號免密登錄
1、生成SSH密鑰對,并部署到服務器
要使 root 用戶成功登錄,需先在客戶端生成 SSH 密鑰對,并將公鑰部署到服務器:
- 客戶端生成密鑰 (在本地PC執行):
ssh-keygen -t ed25519 -C "root_ssh_key"
- 按提示選擇保存路徑(默認 C:\Users\你的用戶名.ssh\id_ed25519)。
- 連續按 3 次回車?,不設密碼(實現完全免密)
最后在文件夾中生成SSH密鑰對
- 部署公鑰到服務器?:
登錄 Ubuntu
創建 .ssh 目錄并寫入公鑰
mkdir -p ~/.ssh
echo "粘貼復制的公鑰內容,也就是id_ed25519.pub文件里面的內容" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
2、測試免密登錄
在 Windows PowerShell 執行:
ssh 用戶名@Ubuntu_IP
- 成功標志?:直接登錄 Ubuntu,無需輸入密碼。
- 失敗表現?:提示輸入密碼或返回 Permission denied。
3、啟用root用戶
使用當前具有 sudo 權限的用戶登錄系統。執行密碼修改命令
sudo passwd root
- 輸入當前用戶的密碼?(用于 sudo 提權)。
- 輸入新的 root 密碼?(輸入時不會顯示字符)。
- 再次確認新密碼。
禁用root密碼登錄(增強安全)?
sudo vim /etc/ssh/sshd_config
設置PermitRootLogin prohibit-password
重啟systemctl restart ssh
4、找到本地的ssh配置文件并配置密鑰登錄
在vscode中點擊SSH旁邊的配置按鈕就會出現ssh本地的配置文件,一般是C:\Users\你的用戶名\.ssh\config
在config文件中配置User root 和IdentityFile 密鑰文件的路徑。
這樣就可以通過root進入到任何目錄操作編輯任何文件了。
最后要提醒大家的是大家在修改任何配置文件的時候要注意備份和確認,因為獲得了root權限可以操作編輯任何文件了。
博客地址:http://xiejava.ishareread.com/