当前位置: 首页 > 知识库问答 >
问题:

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

颛孙子民
2023-03-14

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

共有2个答案

从光启
2023-03-14

我自己没有在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(路径可能不同)

请注意,没有。

PubkeyAuthentication yes
PasswordAuthentication no
StrictModes no
  • 向服务器的C:\ProgramData\ssh\administrators\u authorized\u密钥和C:\Users\user\添加客户端pub密钥(或通过ssh密钥生成新密钥)。ssh\authorized\u密钥

请注意,不仅要输入到授权密钥中,还要输入到管理员授权密钥中。因为如果你是服务器上的管理员,那么你需要在管理员授权密钥文件中拥有授权的pub密钥。将所有pub键添加到这两个文件不会对您造成影响。(或编辑sshd\u config文件)

  • 重新启动sshd服务器

当服务器的授权密钥和/或sshd\u配置文件更新时,必须重新启动服务器。

stop-Service ssh
Start-Service sshd
  • SSH到

然后试试看。

ssh user@192.168.1.2
魏明亮
2023-03-14

SSH视窗系统是浪费时间。不幸的是,他们的文档https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement已经过时https://github.com/MicrosoftDocs/windowsserverdocs/issues/4598不再工作。

如果你使用的是视窗10,我建议在你的视窗10上使用WSLLinux。它在视窗上基本上是Linux机器,但也可用于SSH功能。WSL SSHing确实和你在Linux机器上一样完美。

 类似资料:
  • Jenkins master运行在Amazon实例上,从机设置在专用的Soyoustart机器上。工作正常,直到需要重做从属设置:重新安装OS,安装Java,向从属authorized_keys添加masters key,并删除/再次添加masters known_hosts中的从属。为从机设置新的凭据,并在Jenkins master中配置节点,但它无法连接到从机。 设置是相同的,并且一直在与其

  • 我有两台机器:machine foo()运行redis服务器,而machine bar()运行通过Jedis连接到foo的java应用程序。当给jedis提供地址时,一切都很好。 但是我不信任foo和bar之间的路由器,redis也不支持SSL。因此,我设置了一个从bar到foo:的ssh隧道 现在,从bar中,我可以直接在或通过隧道在成功地telnet到foo上的redis。对于jedis,如果

  • 远程Linux计算机位于内部网络中,没有公共IP地址。所以我安装了ngrok。 ngrok by@不可恢复(Ctrl C退出)在线隧道状态2.0.19/2.0.17版Web界面http://127.0.0.1:4040 转发tcp://0.tcp.ngrok.io:36428 - 我检查了sshd是否正在运行。 在当地的电脑上,我试着 这引起了 SSH:连接到主机ngrok.com端口36428:

  • 我想公开我的系统,以便通过ssh进行访问。 运行此

  • 在尝试应用terraform计划时,我得到一个不加起来的ssh错误: SSH:握手失败:SSH:密钥交换没有通用算法;提供的客户端:[curve25519-sha256@libssh.org ecdh-sha2-nistp256 ecdh-sha2-nistp384 ecdh-sha2-nistp521 diffie-hellman-group14-sha1 diffie-hellman-grou

  • 我无法通过 SSH 连接到我的 EC2 实例 - 我收到超时错误。我检查了安全组,以确保 SSH 流量正常工作。我检查了路由表,并确保它们已连接到互联网网关。一小时前,我能够通过SSH连接到实例中,但现在已经没有了。我正在通过腻子连接。在使用ec2-user@domain之前,我遇到了相同的超时连接问题,我只需在Putty的主机名字段中输入IP地址即可解决。在这一点上,我能够毫无问题地连接。然后,