我可以通过将 vbox 适配器 1 设置为bridged network adapter
当我将适配器 2 设置为host-only adapter
如果我不想使用防火墙,这就足够了,但是我确实需要...使用此解决方案,我需要不断摆弄 UFW 以允许适配器 1 通信。
读了一些书之后,我意识到我应该能够将适配器 1 设置为 nat 适配器并配置端口转发,如下所示。
name|proto| host ip | Host port| Guest IP | Guest Port
SSH | TCP | 127.0.0.1 | 2522 | 192.168.52.1 | 22
这样我就可以通过以下方式通过 ssh 进入客户端:
ssh -vvv -p 2522 -i ~/.ssh/id_rsa [email protected]
我的问题是这种方法冻结没有任何解释。
OpenSSH_8.2p1 Ubuntu-4ubuntu0.4, OpenSSL 1.1.1f 31 Mar 2020
debug1: Reading configuration data /home/user/.ssh/config
debug1: /home/user/.ssh/config line 41: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: resolve_canonicalize: hostname 127.0.0.1 is address
debug2: ssh_connect_direct
debug1: Connecting to 127.0.0.1 [127.0.0.1] port 2522.
debug1: Connection established.
debug1: identity file /home/user/.ssh/id_rsa type 0
debug1: identity file /home/user/.ssh/id_rsa-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.4
(我在禁用 UFW 的情况下进行了测试。)
一切都表明这应该可行,但事实并非如此...有什么猜测吗?
如果 NAT 上的 ssh 有效,我可以通过 ssh 进入盒子并进行主机与客户机通信,而不必不断编辑防火墙。
进步: 根据@steeldriver的建议和这个帖子端口转发的正确 IP 地址应为 Guest IP = 10.0.2.15
但是,当使用该地址时,ssh 无法连接:
OpenSSH_8.2p1 Ubuntu-4ubuntu0.4, OpenSSL 1.1.1f 31 Mar 2020
debug1: Reading configuration data /home/dragonpharaoh/.ssh/config
debug1: /home/dragonpharaoh/.ssh/config line 41: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug2: resolve_canonicalize: hostname 10.0.2.15 is address
debug2: ssh_connect_direct
debug1: Connecting to 10.0.2.15 [10.0.2.15] port 2522
注意:主机都是刚刚安装的(不到一个月),而客户机是今天安装的
答案1
我的帖子中有关 SSH over NAT 的设置都是正确的。
错误是我正在使用的 ssh 命令:
ssh 命令可以不是是主机专用适配器 ip
ssh -p 2222 <login>@192.168.52.1
<- 不会解决
ssh 命令可以不是是分配给 vbox 的 nat 适配器 ip
ssh -p 2222 <login>@10.0.2.15
<-不会解决
SSH 命令必须是:
ssh -p 2222 <login>@127.0.0.1