我有一个安装了一些自定义磁盘映像 (CentOS) 的 VM,我无法通过 SSH 连接到 VM。
以下是我尝试过的一些事情:
[VM]$ ssh root@localhost
Password:
Run Code Online (Sandbox Code Playgroud)
太好了,ssh 正在使用环回。
但是当我从主机尝试时:
~/VirtualBox VMs% ssh -v -v -v root@192.168.56.1
OpenSSH_5.9p1, OpenSSL 0.9.8y 5 Feb 2013
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.56.1 [192.168.56.1] port 22.
debug1: connect to address 192.168.56.1 port 22: Connection refused
ssh: connect to host 192.168.56.1 port 22: Connection refused
Run Code Online (Sandbox Code Playgroud)
纳达。虽然 Ping 有效。
在 VM 上,/etc/hosts.allow:
ssh:ALL:allow
sshd:ALL:allow
Run Code Online (Sandbox Code Playgroud)
hosts.deny 中没有任何内容
编辑:
我也做过:
service iptables save
service iptables stop
chkconfig iptables off
Run Code Online (Sandbox Code Playgroud)
编辑:
我还在 /var/log/secure 中的 VM 上看到此消息

但是我可以很好地从 VM 到 VM,所以这不是问题,对吧?
编辑:
[VM]$ lsof -i :22
我有,在 /etc/ssh/sshd_config
PermitRootLogin yes
Run Code Online (Sandbox Code Playgroud)
并且无法使用单独的用户名登录。
编辑:
netstat -pant |grep :22和 netstat -ntp |grep :22

我想也许这也指向 IPv6 解决方案?
编辑:
现有配置
vi /etc/sysctl.conf

新配置
vi /etc/sysctl.conf
然后我运行了命令:
sysctl -w net.ipv6.conf.default.disable_ipv6=1
sysctl -w net.ipv6.conf.all.disable_ipv6=1
chkconfig ip6tables off
service sshd restart
init 6
Run Code Online (Sandbox Code Playgroud)
Aaaaaaand,还是什么都没有。但是重新启动后,看起来 ipv6 没有被禁用。我收到相同的错误消息。
并且lsof -i :22仍在说类型 IPv6:

编辑:进一步深入 IPv6 兔子洞。
http://ubuntu-tutorials.com/2008/01/12/disabling-ssh-connections-on-ipv6/
它说要删除带有注释的行#ListenAddress ::,这看起来很可疑,因为它已经被注释掉了。所以我做了,什么也没做。
但是,下一节有一个有用的花絮:
AddressFamily inet # IPv4 only
当我将这一行添加到/etc/ssh/sshd_config并连续重新启动几次时,我现在看到我的地址绑定错误已停止出现在/var/log/secure

lsof -i :22现在
的输出显示了一种 IPv4!
进步!!但不幸的是我仍然无法连接。我尝试重新启动 VM,打开新的 shell 窗口,以防万一有一些状态仍然存在。还是一样的答案。
~% ssh -vvv root@192.168.56.1
OpenSSH_5.9p1, OpenSSL 0.9.8y 5 Feb 2013
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.56.1 [192.168.56.1] port 22.
debug1: connect to address 192.168.56.1 port 22: Connection refused
ssh: connect to host 192.168.56.1 port 22: Connection refused
Run Code Online (Sandbox Code Playgroud)
编辑:
好的,所以我得到了 arp-scan 并试图找到 IP 冲突,但现在我更加困惑。ifconfig 显示 vboxnet0(仅主机适配器)的 IP 为 192.168.56.1。那就是我开始获得该 IP 的地方。
[local]~root# ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
options=3<RXCSUM,TXCSUM>
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 7c:d1:c3:e8:b0:e9
inet6 fe80::7ed1:c3ff:fee8:b0e9%en0 prefixlen 64 scopeid 0x4
inet 10.6.12.46 netmask 0xfffffe00 broadcast 10.6.13.255
media: autoselect
status: active
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
ether 0e:d1:c3:e8:b0:e9
media: autoselect
status: inactive
vboxnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 0a:00:27:00:00:00
inet 192.168.56.1 netmask 0xffffff00 broadcast 192.168.56.255
vboxnet1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 0a:00:27:00:00:01
inet 192.168.57.1 netmask 0xffffff00 broadcast 192.168.57.255
Run Code Online (Sandbox Code Playgroud)
但是arp-scan -l只给出以 10.6.*.* 开头的域,
所以我猜它在看 en0?所以我试过了
arp-scan -I vboxnet0 -l
mba-108-on-03:~ root# arp-scan -I vboxnet0 -l
Interface: vboxnet0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.56.100 08:00:27:bc:ed:2f CADMUS COMPUTER SYSTEMS
512 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.8: 256 hosts scanned in 1.301 seconds (196.77 hosts/sec). 1 responded
Run Code Online (Sandbox Code Playgroud)
为什么现在是 0.100?#使困惑
vboxnet1 什么都没有
mba-108-on-03:~ root# arp-scan -I vboxnet1 -l
Interface: vboxnet1, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
512 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.8: 256 hosts scanned in 1.302 seconds (196.62 hosts/sec). 0 responded
Run Code Online (Sandbox Code Playgroud)
所有其他接口都不适用于 arp-scan。
因此,让我们在 en0 界面上显示重复项:
mba-108-on-03:~ root# arp-scan -I en0 -l |grep DUP
10.6.12.68 84:8e:0c:75:5b:f4 (Unknown) (DUP: 2)
10.6.12.64 ac:cf:5c:42:24:47 (Unknown) (DUP: 2)
10.6.12.76 88:53:95:6e:6a:af (Unknown) (DUP: 2)
Run Code Online (Sandbox Code Playgroud)
这些数字对我来说没有任何意义。将尝试重新启动,然后是 IPv6 建议。
编辑:
VM 是一个 VirtualBox。
适配器 1:NAT
适配器 2:仅主机适配器,'vboxnet0'

有任何想法吗?
好吧,这就是它最终组合在一起的方式:
我的一位同事回忆说,磁盘映像“可能没有启用第二个接口”。由于 VBox 设置为 NAT 作为适配器一,仅主机作为适配器二,因此您需要在磁盘映像上设置 eth0 和 eth1。我们没有。
去做这个:
ifconfig |less没有同时列出 eth0 和 eth1。 cd /etc/sysconfig/network-scripts/cp ifcfg-eth0 ifcfg-eth1cp ifcfg-eth0.bak ifcfg-eth1.bakHWaddr并将 eth0 更改为 eth1

ifup eth1ifconfig并获取inet addreth1,这对我来说是一个不同的 IP。我现在使用 192.168.56.101。ssh root@192.168.56.101上面问题中的任何编辑实际上都不是我的问题,但这都是很好的调试信息!
干杯,
肯
| 归档时间: |
|
| 查看次数: |
35738 次 |
| 最近记录: |