我正在尝试使用 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)