如何为 SSH 使用新的 Windows 终端应用程序? [关闭]

Posted

技术标签:

【中文标题】如何为 SSH 使用新的 Windows 终端应用程序? [关闭]【英文标题】:How to use a new Windows Terminal app for SSH? [closed] 【发布时间】:2019-12-13 06:32:33 【问题描述】:

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

【问题讨论】:

【参考方案1】:

您可以使用profile configuration 中的commandline 字段在标签创建时启动SSH 连接。

分步指南:

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

【讨论】:

如果您想使用 WSL 而不是 Powershell 进行连接,您可以使用“debian run ssh me@my-server -p 22 -i ~/.ssh/id_rsa”。我使用 Debian 作为我的 WSL 安装,这可能因 WSL 操作系统而异。【参考方案2】:

您可以从 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

它应该返回以下输出:

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 发布关于 ssh 配置的非常好的文档。

例如config

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

Windows 终端

类似于@Himura 指令,但不是使用“bash.exe”,而是使用“ssh.exe”。

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

在 Windows 终端的设置中编辑您的 profile.json, 复制个人资料 将“guid”值更改为新的 GUID 使用 ssh.exe 更改命令行值,例如 "commandline" : "ssh.exe test" 更改配置文件的“名称”

例如

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,
....

【讨论】:

【参考方案3】:

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

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

有一篇很好的帖子记录了这个here的基本用法

希望这会有所帮助。

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于如何为 SSH 使用新的 Windows 终端应用程序? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何为本地 git (github) 存储库永久添加 SSH 密钥? [复制]

如何为我的新 gitlab 帐户生成新的 ssh-key?

在 Windows 终端中存储 SSH/telnet 连接的登录详细信息

如何为 Intranet 预编译 MVC?

为SSH登录设置电子邮件提醒

如何为 Windows XP 部署 Qt/QML 应用程序