无法使用 Ngrok 通过 SSH 连接到 Windows 计算机

ー P*_*e ー 6 windows ssh openssh ngrok

我正在尝试使用 ngrok 从互联网上的远程计算机通过 SSH(公钥身份验证)连接到 Windows 用户。但显然不起作用。

这是我所做的。

我在Windows上安装并激活了SSH。

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Run Code Online (Sandbox Code Playgroud)

我生成了公钥文件并将其发送到远程计算机以进行 ssh。

ssh-keygen
Run Code Online (Sandbox Code Playgroud)

我在 SSH 设置文件“C:\ProgramData\ssh\sshd_config”中更改/添加了以下行

PermitRootLogin yes
AllowUsers otheruser
PubkeyAuthentication yes 
PasswordAuthentication no 
Run Code Online (Sandbox Code Playgroud)

我重新启动了 ssh 服务器以应用设置更改。

net stop sshd ; net start sshd
Run Code Online (Sandbox Code Playgroud)

我安装了 ngrok 并运行 ngrok

./ngrok tcp 22
# got "6.tcp.ngrok.io:25252"
Run Code Online (Sandbox Code Playgroud)

我尝试使用用户“tmp”的“tmp”密钥文件从远程计算机 ssh 到 Windows 计算机。

ssh -i "C:\pg\.ssh\tmp" tmp@6.tcp.ngrok.io -p 25252
Run Code Online (Sandbox Code Playgroud)

并失败了。

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).
Run Code Online (Sandbox Code Playgroud)

小智 4

SSH 到 Windows 有点浪费时间。不幸的是,他们的文档https://learn.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 计算机上的工作效果一样好。