虚拟机软件:VMware Workstation Pro 12 虚拟机:Ubuntu16 LTC 宿主机:win10
目前宿主机能够 ssh 到虚拟机里面去。(没有设置什么端口映射,因为是我自己笔记本创建的虚拟机)
在 VMware 那边查看 NAT 子网信息:
在 Ubuntu 里面查看 ip 为:192.168.135.128
现在我合计试一下 虚拟机 ssh 到宿主机试一下。以下我的宿主机的信息:
然后,我发现 192.168.135.1 这个 ip 我根本 ping 不通,然后 ping 192.168.0.103 是可以的(以太网适配器的地址)。
后面又遇到一些问题,也这样解决了:通过给 Windows 添加 入站规则(允许 22 端口进入),安装可选功能——openSSH 服务器,并开始服务器。
现在有两个问题:
a. 这说明提示权限不足和虚拟机没有关系,只有当我在 win10 里 ssh localhost 都可以成功的情况下,虚拟机 ssh 宿主机才可能成功。主要想问 这个思路应该是对的吧?
b. PS:不过也不想折腾了,Windows 的坑感觉比较多。不过有大佬知道的,也可以指导一下。
1
yyzh 2023-09-26 23:32:42 +08:00 via Android
这么麻烦的么。。。我一直都是用的网关地址(vm 那个)
|
2
cnbatch 2023-09-26 23:34:06 +08:00
其实不需要手动创建入站规则,安装 OpenSSH 可选功能的时候,Windows 会自动创建对应规则的:
https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse https://learn.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse 不过,我不确定是不是因为手动创建了规则会导致 Windows 不再自动创建规则,于是就无法 ssh 到 192.168.135.1 既然连接不上 192.168.135.1 ,那么连接 192.168.0.103 也没关系,反正 NAT 已经帮你转换好地址了 Permission denied 的问题,可能需要检查下注册表 HKLM:\SOFTWARE\OpenSSH 里面的 DefaultShell 指向了哪里,有可能指向了不存在的命令行解析器。根据其他人在 3 年前的描述: https://learn.microsoft.com/en-us/answers/questions/109609/unable-to-access-the-win10-pc-with-openssh-install 可能是指向了 C:\Program Files\PowerShell\7\pwsh.exe 如果刚好你没安装 PowerShell 7 或者安装的 PowerShell 7 是 Windows 商店版本的,那可能会因为文件不存在而导致启动失败。 如果路径确实就是 C:\Program Files\PowerShell\7\pwsh.exe 并且没安装 PowerShell 7 ,那么从微软的 Github 页面下载安装就可以了: https://github.com/PowerShell/PowerShell/releases/ 务必安装 msi 版本的,64 位 Windows 不要选择 32 位版本的 PowerShell ,因为那样会安装到 Program Files (x86) 或者手动改成 cmd.exe 的路径也可以,如果习惯用 cmd 的话 |
3
amiwrong123 OP |
4
yyzh 2023-09-26 23:46:26 +08:00 via Android
@amiwrong123 试试把防火墙关了?或者 ssh 监听没设置对?
|
5
amiwrong123 OP @cnbatch #2
本来我也没有创建入站规则的,但是在虚拟机里 ssh 192.168.0.103 时,之前会出现 Connection refused ,然后我就加了入站规则。 ![]( https://s3.bmp.ovh/imgs/2023/09/26/4ddbff3a322f68c2.png) 你说的这个注册表这个,我也搞了下(按照 Google 的文章),而且这个路径我设置的,确实是 powershell 的路径呀,感觉没有问题。 |
6
cnbatch 2023-09-27 00:08:23 +08:00
端口 22 拒绝连接那个,可以按楼上说的把整个防火墙关掉试试,可能只是规则问题
然后可能还要检查下 sshd_config: 位置应该在 C:\ProgramData\ssh\sshd_config 看看 PasswordAuthentication 、PermitRootLogin 之类的,该改成 yes 的都改一改 |
7
LeeLou 2023-09-27 07:15:29 +08:00
192.168.135.1 应该是宿主机 win 的 vmnet8 网卡,本地连接里是不是把它禁用了?
|
8
bruce0 2023-09-27 08:47:57 +08:00
我原来也遇到过这个问题, 没找到解决办法, 最后改用桥接了, 方便
|
9
skiy 2023-09-27 10:18:16 +08:00 via iPhone
用网关地址。docker network inspect mynetwork | grep IPv4Address
好吧,windows 我没试验过… |