无法使用 Ngrok SSH 到 Windows 机器
Posted
技术标签:
【中文标题】无法使用 Ngrok SSH 到 Windows 机器【英文标题】:Unable to SSH to a Windows machine using Ngrok 【发布时间】:2021-07-15 12:08:36 【问题描述】:我正在尝试使用 ngrok 从互联网上的远程计算机通过 SSH(公钥身份验证)连接到 Windows 用户。 但显然不起作用。
这是我所做的。
我在 windows 上安装并激活了 SSH。
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
我生成了公钥文件并发送到远程机器上 ssh。
ssh-keygen
我在 SSH 设置文件“C:\ProgramData\ssh\sshd_config”中更改/添加了以下行
PermitRootLogin yes
AllowUsers otheruser
PubkeyAuthentication yes
PasswordAuthentication no
我重新启动了 ssh 服务器以应用设置更改。
net stop sshd ; net start sshd
我安装了 ngrok 并运行了 ngrok
./ngrok tcp 22
# got "6.tcp.ngrok.io:25252"
我尝试从远程机器 ssh 到 windows 机器,使用“tmp”密钥文件给用户“tmp”。
ssh -i "C:\pg\.ssh\tmp" tmp@6.tcp.ngrok.io -p 25252
失败了。
ssh -i "C:\pg\.ssh\tmp" tmp@6.tcp.ngrok.io -p 25252
Enter passphrase for key 'C:\pg\.ssh\tmp':
tmp@6.tcp.ngrok.io: Permission denied (publickey,keyboard-interactive).
【问题讨论】:
【参考方案1】:SSH 到 Windows 有点浪费时间。他们的文档 https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement 已经过时了 https://github.com/MicrosoftDocs/windowsserverdocs/issues/4598 并且不再有效,很遗憾。
如果您使用的是 Windows 10,我建议您在 Windows 10 上使用 WSL Linux。它基本上是 Windows 上的 Linux 机器,但也可用于 SSH 功能。 WSL SSHing 确实可以像在 Linux 机器上一样完美地工作。
【讨论】:
【参考方案2】:我本人未在 Ngrok 上进行测试,但请尝试以下步骤。
安装功能Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
启动 sshd 服务器(可选择将服务添加到自动启动)
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
将以下内容添加到C:\ProgramData\ssh\sshd_config
(路径可能不同)
注意StrictModes no
。
PubkeyAuthentication yes
PasswordAuthentication no
StrictModes no
将您的客户端发布密钥(或由ssh-keygen
新生成)添加到服务器的C:\ProgramData\ssh\administrators_authorized_keys
和C:\Users\user\.ssh\authorized_keys
请注意,不仅要输入authorized_keys
,还要输入administrators_authorized_keys
。因为如果您是服务器上的管理员,您需要在 administrators_authorized_keys
文件中专门拥有授权的 pub 密钥。将所有 pub 密钥添加到这两个文件不会对您造成伤害。 (或编辑sshd_config
文件)
您必须在其 authorized_keys 和/或 sshd_config 文件更新时重新启动服务器。
stop-Service ssh
Start-Service sshd
SSH 进入
那就试试吧。
ssh user@192.168.1.2
【讨论】:
以上是关于无法使用 Ngrok SSH 到 Windows 机器的主要内容,如果未能解决你的问题,请参考以下文章
无法在 ngrok 中为 ssh 使用 remote-addr
使用 ngrok 在 Windows PC 上为 Slack 本地开发时无法运行 sudo