如何为 SSH 使用新的 Windows 终端应用程序?

How to use a new Windows Terminal app for SSH?

Windows Terminal 应用程序被宣传为所有终端工作的中心枢纽,因此我对将我的 SSH 连接引入其中并取代古老的 PuTTY 的方法很感兴趣。

您可以在 profile configuration 中使用 commandline 字段在创建选项卡时启动 SSH 连接。

分步指南:

  1. 确保您有 SSH 客户端(尝试从 Command Prompt 选项卡连接到服务器)。 详细说明了这一步。
  2. 打开设置 (Ctrl+,)
  3. "profiles"对象中找到"list"数组
  4. 查找 Command Prompt 个人资料("commandline": "cmd.exe"
  5. 复制配置文件(复制粘贴整个对象,注意对象之间的逗号)
  6. "guid" 值更改为新的 GUID(例如,from here
  7. commandline 值更改为 "commandline" : "ssh me@my-server -p 22 -i ~/.ssh/id_rsa"(使用您自己的连接命令)。
  8. 更改配置文件的 "name"
  9. 添加 "icon" : "ms-appx:///ProfileIcons/{9acb9455-ca41-5af7-950f-6bca1bc9722f}.png" 项以使用 Tux 图标(默认图标为 here
  10. 你应该有这样的东西:
    {
        "$schema": "https://aka.ms/terminal-profiles-schema",
        "profiles":
        {
            "list":
            [
                // ...
                {
                    "guid": "{1d43c510-93e8-4960-a18b-e432641e0930}",
                    "name": "ssh my-server",
                    "icon" : "ms-appx:///ProfileIcons/{9acb9455-ca41-5af7-950f-6bca1bc9722f}.png",
                    "commandline": "ssh me@my-server -p 22 -i ~/.ssh/id_rsa"
                }
            ]
        }
    }
    
  11. 保存配置并享受新标签下拉菜单中的新项目。

如果您想留在终端并轻松管理 WSL 中的所有 ssh 连接,那么我建议您在 ssh 命令中使用内置的 ssh 配置管理。

基本上你将所有不同的 ssh 配置放入文件 ~/.ssh/config

有一个很好的 post 记录了这个 here

的基本用法

希望对您有所帮助。

您可以使用来自 Windows 10,

的原生 ssh 客户端

来自 powershell

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

# This should return the following output:

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

安装 OpenSSH 客户端

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

它应该return以下输出:

Path          :
Online        : True
RestartNeeded : False

卸载 OpenSSH 客户端

Remove-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

将主机添加到您的 ssh 配置文件

从您的主文件夹,转到 .ssh/config 文件,如果未使用 ssh 应用程序,该文件夹可能不存在,因此有必要在您的主文件夹中创建它

C:\Users\%USERPROFILE%\.ssh

@Damo post 关于 ssh 配置的非常好的文档。

例如config

Host test
    User test
    HostName 127.0.0.1
    Port 22
    IdentityFile ~/.ssh/id_rsa

Windows 终端机

类似于 @Himura 说明,但您将使用 "ssh.exe".

而不是使用 "bash.exe"

为了连接到远程主机,您可以使用.ssh/config 文件中的主机名,例如 ssh.exe test,如果您不想使用配置文件,您可以使用用户@ip ssh.exe test@127.0.0.1 密码对话框将被提示

  • 从 Windows 终端上的设置编辑您的 profile.json
  • 复制配置文件
  • 将 "guid" 值更改为新的 GUID
  • 使用 ssh.exe 更改命令行值,例如 "commandline" : "ssh.exe test"
  • 更改配置文件的 "name"

例如

C:\Users\%USERPROFILE%\.ssh\config

Host vagrant
    Hostname 127.0.0.1
    Port 2222
    User vagrant
    IdentityFile ~/.ssh/vagrant.key

profile.json

    ...
    {
        "acrylicOpacity" : 0.75,
        "closeOnExit" : true,
        "colorScheme" : "One Half Dark",
        "commandline" : "ssh.exe vagrant",
        "cursorColor" : "#FFFFFF",
        "cursorShape" : "bar",
        "fontFace" : "DejaVu Sans Mono for Powerline",
        "fontSize" : 10,
        "guid" : "{1777cdf0-b2c4-5a63-a204-1111f349ea7c}",
        "historySize" : 9001,
        "icon" : "ms-appx:///ProfileIcons/{9acb9455-ca41-5af7-950f-6bca1bc9722f}.png",
        "name" : "Vagrant",
        "padding" : "0, 0, 0, 0",
        "snapOnInput" : true,
        "startingDirectory" : "%USERPROFILE%",
        "useAcrylic" : true
  }
  ....

如果要将新条目设置为默认条目,请搜索 defaultProfile

....
   "globals" : 
    {
        "alwaysShowTabs" : true,
        "copyOnSelect" : false,
        "defaultProfile" : "{1777cdf0-b2c4-5a63-a204-1111f349ea7c}",
        "initialCols" : 120,
        "initialRows" : 30,
....

如果您想使用 Windows 终端连接到 Google Compute Engine 上的机器,您可以编写一个脚本来替换默认命令并使用 ssh 而不是 putty.exe。更多详情 here.