如何通过 PowerShell在 Windows 的配置文件中设置主机名和端口?OpenSSH
在 Unix/Linux 上:
现在通过键入以下内容编辑或创建文件:
纳米 ~/.ssh/config
在这里,您可以设置特定于主机的配置选项。要指定新端口,请使用如下格式:
主机 remote_alias 主机名 remote_host 端口 port_num
这将允许您登录而无需在命令行上指定特定端口号。
如何通过 PowerShell在 Windows 的配置文件中设置主机名和端口?OpenSSH
在 Unix/Linux 上:
现在通过键入以下内容编辑或创建文件:
纳米 ~/.ssh/config
在这里,您可以设置特定于主机的配置选项。要指定新端口,请使用如下格式:
主机 remote_alias 主机名 remote_host 端口 port_num
这将允许您登录而无需在命令行上指定特定端口号。
OpenSSH 配置和密钥文件(包括
config
、known_hosts
、authorized_keys
、id_rsa
等),在 *nix 上转到~/.ssh
,在Win32-OpenSSH上转到%USERPROFILE%\.ssh
.这通常是:
在带有 PowerShell 的 Windows 10 中,不会创建配置文件,因此我们必须自己创建它们。
这个答案是通过:Windows 10 PRO 20H2 (Build 19042.804)
以及来自官方 GitHub的最后一个 OpenSSH-Portable (v8.1.0.0p1-Beta)完成的
注意 1:这里我展示了如何只配置文件夹.ssh中的配置文件“config” ,它应该在用户文件夹
$HOME\.ssh
中,因为它是必需的,通常在我看来,其他文件是自动创建的当一台安装 Open-SSH 服务器时。如果不是这种情况,只需调整命令行注意 2:有 Git for Windows 和 OpenSSH-portable 可能会导致代理配置出现问题,因此您应该知道它是 Windows 服务使用的 SSH-Agent
您可以使用以下命令找出 Windows 服务使用了哪个 ssh-agent:
如果该
Get-WmiObject
命令不再有效,您可以使用该Get-CimInstance
命令,该命令应该是新版本 PowerShell 的最终继任者之后,您可以根据需要使用与 Linux 上相同的语法配置 SSH 配置文件
小例子
现在您可以像这样测试您的配置:
如果 ssh 不起作用,这是因为您的环境变量中没有 OpenSSH 文件夹,如果您将OpenSSH
Binary 安装在C:\
名称是OpenSSH-Win64
其他命令
简单回答问题“windows openssh CLIENT 的配置文件在哪里?”
对于 Openssh 窗口 CLIENT C:\ProgramData\ssh\ssh.config
请注意,此文件不会自动创建,您可以自己创建一个。该文件与sshD.config类似,它也位于那里,但为 Windows 上的 OpenSSH 服务器配置。
另请注意,密码和密钥设置默认为无,因此您至少需要在ssh.config文件中进行设置:(+ 表示添加到任何现有条目):
以上设置适用于 Cisco SSH 客户端到 Win SSH 服务器和 Win SSH 客户端到 Cisco SSH 服务器。对于其他人,您需要查看在发出缺少密码和密钥的 SSH 命令时返回的错误。
例如,在 Win SSH 客户端上:
PS C:\Users\poh> ssh 192.168.111.2
Unable to negotiate with 192.168.111.2 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
在 Cisco SSH 服务器上:(使用命令 - debug ip ssh all)
所以根据错误,Win客户端需要ssh.config文件中的条目:
Kex算法+diffie-hellman-group1-sha1
OpenSSH 安装后,执行一些额外的配置步骤。
确保 OpenSSH 文件夹包含在系统路径环境变量中:
C:\Windows\System32\OpenSSH\
如果作为 Windows 可选功能C:\Program Files\OpenSSH\
安装 如果通过 OpenSSH 下载安装 将两个服务设置为自动启动:如果您安装了带有可选功能的 OpenSSH,则 Windows 会创建一个新的防火墙规则,以允许通过端口 22 对 SSH 进行入站访问。如果您通过下载安装了 OpenSSH,则使用以下命令创建防火墙规则:
启动 sshd 服务以生成 SSH 密钥:
SSH 密钥和配置文件位于
C:\ProgramData\ssh
隐藏文件夹中。SSH 使用的默认 shell 是 Windows 命令 shell。这需要更改为 PowerShell:现在,当您通过 SSH 连接到系统时,PowerShell Core 将启动并成为默认 shell。如果需要,您还可以将默认外壳程序设置为 Windows PowerShell。
Windows 上的 OpenSSH 存在一个错误。它不适用于带有空格的路径,例如 PowerShell Core 可执行文件的路径!解决方法是创建一个符号链接来创建 OpenSSH 可以使用的路径:
在 sshd_config文件中,取消注释以下行:
在其他子系统行之前添加此行:
这告诉 OpenSSH 运行 PowerShell Core。
注释掉这一行:
保存对 sshd_config 文件的更改后,重新启动服务:
对配置文件进行任何更改后,您需要重新启动 sshd 服务。