前言#
在 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 了