前言#
在 Windows 平台上,想要通過 ssh 連接伺服器的軟體選擇實在是太多了,功能強大的有 XShell,PuTTY,漂亮的也有 Tabby Terminal 之類。但是,當我把 Windows Terminal 當作主力終端使用後,不希望再打開其他的應用來連接 ssh 了,所以就有了這篇筆記。
基本操作#
現在網上能搜到的教程都是要通過編輯 settings.json 實現的,但是隨著 Windows Terminal 的更新,現在已經可以可視化設置了。本文就將直接使用 gui 進行設置。
-
打開 Windows Terminal, 輸入
Ctrl+,
,進入設置頁面 -
左側,點擊 “添加新配置文件”
-
直接按 “複製”,複製了哪一個不要緊,反正都得改的
-
名稱自己改
-
如果你的伺服器是 Linux 的話(應該基本都是吧),啟動目錄可以改成
~
,或者其他你想要的目錄 -
可以將圖標改成
ms-appx:///ProfileIcons/{9acb9455-ca41-5af7-950f-6bca1bc9722f}.png
是一個 Linux 小企鵝的圖標
-
最關鍵的是 “命令行” 設置:設置為
ssh -p [端口] [用戶名]@[伺服器ip] #端口是22的話 -p [端口] 可以省略 #兩個例子: ssh -p 2342 [email protected] ssh [email protected] #如果ssh端口為22
-
點擊 “保存”,然後就可以使用了
- 然而,這樣每次連接都要輸入密碼,Windows Terminal 也沒有保存密碼的功能,如何簡化呢?
使用 RSA 密鑰來免密登錄#
-
使你的伺服器支持密鑰登陸,如果已經設置過的可以跳到下一步
-
可以去 這裡 看一看菜鳥教程的教學,我把主要過程摘錄如下:
-
登陸你打算使用密鑰登錄的帳戶,執行以下指令:
cd ~ & ssh-keygen
-
然後一路回車,不要設置密鑰鎖碼!否則登陸的時候還得再輸這個碼,直接回車就行
cd .ssh cat id_rsa.pub >> authorized_keys chmod 600 authorized_keys chmod 700 ~/.ssh
-
用 FTP 把
~/.ssh/id_rsa
(就是剛生成的私鑰)下下來,我的建議是重命名(起個有意義的名字)後放進%USERPROFILE%/.ssh/
目錄下,因為自機生成的密鑰也會放在這個文件夾 -
編輯
/etc/ssh/sshd_config
, 增加(修改 / 去除註釋化 / 檢查)的設置如下RSAAuthentication yes PubkeyAuthentication yes PermitRootLogin yes # 如果希望的話,可以用下面的設置禁止使用密碼登陸 # 記得先測試了可以用密鑰再改 PasswordAuthentication no
-
測試可以使用密鑰連接後,重啟 SSH 服務
service sshd restart
- 權限不夠就 sudo, 不用我多提了吧
-
-
將 Windows Terminal 的配置中 “命令行” 的值更改一下
ssh -i [私鑰路徑] -p [端口] [用戶名]@[伺服器ip] #例如: ssh -i "C:/Users/usr/.ssh/id_rsa_server" -p 2342 [email protected]
-
大工告成!
-
如果你是跟著別人的教程或者官方文檔走的,在 settings.json 中寫路徑的時候記得轉義引號,使用
/
而非\
, 或者你也可以轉義。如:"commandline": "ssh -i \"C:\\Users\\usr\\.ssh\\id_rsa_server\" -p 1145 [email protected]",
結語#
貼上微軟官方文檔的鏈接 Windows 終端 SSH | Microsoft Learn
現在的 Windows Terminal 基本所有操作都可以可視化完成了,我覺得沒有特殊需求,沒必要再去改 settings.json 了