Windows Terminal 添加 SSH 配置 Profile

在 Windows 平台上,想要通过 ssh 连接服务器的软件选择实在是太多了,功能强大的有 XShell,PuTTY,漂亮的也有 Tabby Terminal 之类。但是,当我把 Windows Terminal 当作主力终端使用后,不希望再打开其他的应用来连接 ssh 了,所以就有了这篇笔记。

基本操作

现在网上能搜到的教程都是要通过编辑 settings.json 实现的,但是随着 Windows Terminal 的更新,现在已经可以可视化设置了。本文就将直接使用 gui 进行设置。

  1. 打开 Windows Terminal, 输入 Ctrl+,,进入设置页面

  2. 左侧,点击“添加新配置文件”

    配置文件

  3. 直接按“复制”,复制了哪一个不要紧,反正都得改的

  4. 名称自己改

  5. 如果你的服务器是 Linux 的话(应该基本都是吧),启动目录可以改成 ~,或者其他你想要的目录

  6. 可以将图标改成

    ms-appx:///ProfileIcons/{9acb9455-ca41-5af7-950f-6bca1bc9722f}.png

    是一个 Linux 小企鹅的图标

  7. 最关键的是“命令行”设置:设置为

    ssh -p [端口] [用户名]@[服务器ip]
    #端口是22的话 -p [端口] 可以省略
    #两个例子:
    ssh -p 2342 example@114.514.114.514
    ssh example@114.514.114.514 #如果ssh端口为22
    
    # 如果需要同时执行命令,可以:
    ssh -t bob@foo \"cd /data/bob && exec bash -l\
    
  8. 点击“保存”,然后就可以使用了

    示例

  • 然而,这样每次连接都要输入密码,Windows Terminal 也没有保存密码的功能,如何简化呢?

使用 RSA 密钥来免密登录

  1. 使你的服务器支持密钥登陆,如果已经设置过的可以跳到下一步

    1. 可以去 这里 看一看菜鸟教程的教学,我把主要过程摘录如下:

    2. 登陆你打算使用密钥登录的账户,执行以下指令:

      cd ~ & ssh-keygen
      
    3. 然后一路回车,不要设置密钥锁码!否则登陆的时候还得再输这个码,直接回车就行

      cd .ssh
      cat id_rsa.pub >> authorized_keys
      chmod 600 authorized_keys
      chmod 700 ~/.ssh
      
    4. 用 FTP 把 ~/.ssh/id_rsa(就是刚生成的私钥)下下来,我的建议是重命名(起个有意义的名字)后放进 %USERPROFILE%/.ssh/ 目录下,因为自机生成的密钥也会放在这个文件夹

    5. 编辑 /etc/ssh/sshd_config,增加(修改/去除注释化/检查)的设置如下

      RSAAuthentication yes
      PubkeyAuthentication yes
      PermitRootLogin yes
      
      # 如果希望的话,可以用下面的设置禁止使用密码登陆
      # 记得先测试了可以用密钥再改
      PasswordAuthentication no
      
    6. 测试可以使用密钥连接后,重启 SSH 服务

      service sshd restart
      
    • 权限不够就 sudo,不用我多提了吧
  2. 将 Windows Terminal 的配置中“命令行”的值更改一下

    ssh -i [私钥路径] -p [端口] [用户名]@[服务器ip]
    #例如:
    ssh -i "C:/Users/usr/.ssh/id_rsa_server" -p 2342 example@114.514.114.514
    
  3. 大工告成!

  • 如果你是跟着别人的教程或者官方文档走的,在 settings.json 中写路径的时候记得转义引号,使用 / 而非 \,或者你也可以转义。如:

    "commandline": "ssh -i \"C:\\Users\\usr\\.ssh\\id_rsa_server\" -p 1145 example@114.514.114.514",
    

结语

贴上微软官方文档的链接 Windows 终端 SSH | Microsoft Learn

现在的 Windows Terminal 基本所有操作都可以可视化完成了,我觉得没有特殊需求,没必要再去改 settings.json 了

本文使用“署名-非商业性使用-相同方式共享 4.0 国际(CC BY-NC-SA 4.0)”进行许可。

商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接。 如果您再混合、转换或者基于本作品进行创作,您必须基于相同的协议分发您贡献的作品。

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.3.0