无法从 MacOS 主机到 QEMU Sparc 来宾机进行 SSH 访问

无法从 MacOS 主机到 QEMU Sparc 来宾机进行 SSH 访问

我不知道我是否在正确的论坛上,但这是我的问题:

我在 MacOS 10.9.5 上安装了带有 QEMU 的来宾 Debian Sparc64。我尝试在主机和来宾之间获取 ssh 访问权限,但没有成功。

我想找到一个简单的解决方案。据我所知,我使用以下选项启动 Sparc64:

qemu-system-sparc64 -hda debian_sparc64.img -m 2048 -net nic -net user,hostfwd=tcp::2222-:22 -nographic

然后,我尝试使用以下命令从我的 MacOS 主机连接到来宾:

ssh -p 2222 localhost

不幸的是,上面的命令不询问密码,它保持锁定状态。

如果有人能看到出了什么问题,请告诉我就可以了。

问候

更新1:

当QEMU VM运行时,

以下是 MacOS 主机上的结果:

nmap localhost -p 22

Starting Nmap 6.47 ( http://nmap.org ) at 2017-09-16 22:44 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000097s latency).
PORT   STATE SERVICE
22/tcp open  ssh

以及 MacOS 主机上的结果:

nmap localhost -p 2222

Starting Nmap 6.47 ( http://nmap.org ) at 2017-09-16 22:45 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
PORT     STATE SERVICE
2222/tcp open  EtherNet/IP-1

我忘了说,使用的 QEMU 映像(debian 9.0 Sparc64 guest)默认情况下没有在其上运行“SSH 服务器”,正如在 root 下使用以下命令显示的那样:

# ps aux | grep ssh 
root       299  0.0  0.0   7168  1952 ttyS0    S+   22:51   0:00 grep ssh

我仍然有“SSH 客户端”(我的意思是“ ssh”命令),但我不知道如何从 Debian Sparc64 来宾连接到 MacOS 主机。

问题是我无法安装除 Debian-Sparc64 QEMU 映像提供的软件包之外的其他软件包,因为我在该来宾上没有网络(即我无法使用apt-get install)。

如果有人能看到如何规避这个问题?

当然,有必要在客户机上安装网络(端口 80),但对于 MacOS 主机,这似乎很困难,因为有桥接和虚拟接口......

欢迎任何帮助

更新2:

根据@Stefan M建议,安装后,我尝试通过以下方式启动Squid来使用选项:guestfwd

  qemu-system-sparc64 -hda debian_sparc64.img -m 2048 -net user,guestfwd=tcp::3128-:3128 -nographic

我收到以下错误:

qemu-system-sparc64: -net user,guestfwd=tcp::3128-:3128: could not open guest forwarding device 'guestfwd.tcp.3128'
qemu-system-sparc64: -net user,guestfwd=tcp::3128-:3128: Device 'user' could not be initialized

你能告诉我我必须做什么(MacOS 10.9.5 得到的结果)吗?

更新3:

我找到了一个教程这个链接。在这个页面之后,我做了:

  1. 首先安装 TUN/TAP 驱动程序以将 NIC 从虚拟机桥接到我的 OS X 主机

  2. 推出 QEMU:

qemu-system-sparc64 -hda debian_sparc64.img -m 2048 -net nic -net tap,script=no,downscript=no -nographic

  1. QEMU 启动后,我会遇到主机上的其他终端 (MacOS 10.9.5): ifconfig tap0 192.168.1.21

事实上,我的本地网络使用 192.168.1.x IP。

  1. 进入/etc/network/interfaces访客 Debian Sparc64,我已经设置:

auto eth0 iface eth0 inet static address 192.168.1.20 netmask 255.255.255.0 gateway 192.168.1.21

不幸的是,我无法从 MacOS 主机到 Guest 或从 Guest 到 MacOS 主机进行 SSH 访问(例如,通过执行“来自主机”),ssh [email protected]甚至通过 root 启动 qemu-system-sparc64

如果有人能看出出了什么问题。

问候

答案1

请先尝试主机是否可达。这可以很容易地使用来完成地图。对于您的情况,这应该足够了:

nmap localhost -p 22

如果它说端口已打开,您应该检查来宾上的 sshd。如果它被过滤,可能是您的访客(传入)或您的主机(从本地传出/传入)上存在防火墙问题。

关于更新:

简单来说,你有两个选择:

1) 使用桥接网络,例如,如中所述这里,这样就可以安装sshd了。

2)使用访客转发。由于您已经通过 qemu 在一个方向上建立了连接(端口转发),因此您可以轻松地以相反的方式执行相同的操作:

  • 在你的主机上安装代理(squid、tinyproxy 等)
  • 将访客指向您的代理:(位于命令中未经测试的部分下方):

guestfwd=tcp::3128-:3128

  • 最后但并非最不重要的一点是:使用 http_proxy 作为 apt 命令或在系统范围内设置变量。

当您最终运行 sshd 时,您应该能够通过 ssh 连接到来宾系统。

在第二次更新时:

如果我理解的话文档正确的话,您还应该提供 IP 地址。我的猜测是,您尝试将端口转发到同一主机(可能从来宾到来宾)。

guestfwd=[tcp]:server:port-dev

将访客 TCP 连接转发到字符设备 dev 端口上的 IP 地址服务器

所以它应该是这样的:

guestfwd=tcp:10.0.2.100:3128-tcp:10.10.1.1:3128

这将从端口 3128 上发送所有连接客人IP 10.10.1.1 至 10.0.2.100。

相关内容