ー 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 计算机上的工作效果一样好。