Hen*_*t.t 5 networking ssh debian openssh
解决了!这台机器是戴尔 Poweredge 系统,它在后台运行他们称之为 iDRAC 的东西——而 iDRAC 运行的 SSH 服务器与我在 Debian 中安装的服务器冲突。我的解决方案只是禁用 iDRAC,因为我不使用它,我很高兴我没有使用它。我不知道应该如何解决这个冲突。
刚刚在一台机器上安装了 Debian Stretch。除了安装 openssh-server 和设置我的网络接口之外,最小安装几乎没有做任何事情。我遇到的问题似乎与网络服务有关。
直接从启动我无法通过 SSH 远程连接到我的服务器。服务器此时有 Internet 连接,我可以 ping 它并从中 ping 通。在连接时它开始很好,但随后弹出窗口要求用户输入密码,输入密码不起作用 - 无论如何应该已经由客户端发送。当我在服务器上运行systemctl restart networking.service时,SSH 突然开始工作。
openssh-server 以默认配置运行。
我的 SSH 客户端(Bitvise)日志说:
15:08:26.493 Started a new SSH2 session.
15:08:26.493 Connecting to SSH2 server 171.xxx.xxx.xxx:22.
15:08:26.493 Connection established.
15:08:26.681 Server version: SSH-2.0-OpenSSH_5.8 <----
15:08:26.681 First key exchange started.
15:08:27.289 Received a new host key from the server. Algorithm: xxxxxxxxxxx
15:08:27.320 First key exchange completed using ecdh-sha2/nistp521. xxxxxxxxxxx
15:08:27.320 Attempting password authentication.
15:08:28.724 Authentication failed. Remaining authentication methods: 'password'.
15:08:30.581 Authentication aborted on user's request.
15:08:30.596 The SSH2 session has been terminated.
Run Code Online (Sandbox Code Playgroud)
注意服务器版本SSH-2.0-OpenSSH_5.8
telnet 174.xxx.xxx.xxx 22
Run Code Online (Sandbox Code Playgroud)
响应SSH-2.0-OpenSSH_5.8
在服务器上 SSH 似乎运行得很好:
systemctl status sshd.service
? ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2017-06-28 11:16:52 CEST; 4h 10min ago
Main PID: 598 (sshd)
Tasks: 1 (limit: 7372)
CGroup: /system.slice/ssh.service
?? 598 /usr/sbin/sshd -D
systemd[1]: Starting OpenBSD Secure Shell server...
sshd[598]: Server listening on 0.0.0.0 port 22.
sshd[598]: Server listening on :: port 22.
systemd[1]: Started OpenBSD Secure Shell server.
Run Code Online (Sandbox Code Playgroud)
network.service 的状态显示了这一点
systemctl status networking.service
? networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: active (exited) since Wed 2017-06-28 11:16:49 CEST; 4h 10min ago
Docs: man:interfaces(5)
Process: 471 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=0/SUCCESS)
Process: 335 ExecStartPre=/binsh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --list --exclude=lo)" ] && udevadm settle (code=exited, status=0/SUCCESS)
Main PID: 1120 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 7372)
CGroup: /system.slice/networking.service
systemd[1]: Starting Raise network interfaces...
systemd[1]: Started Raise network interfaces.
Run Code Online (Sandbox Code Playgroud)
重启网络服务后
systemctl restart networking.service
Run Code Online (Sandbox Code Playgroud)
运行此命令后,SSH 突然开始工作。
SSH 客户端日志说:
15:08:57.179 Started a new SSH2 session.
15:08:57.179 Connecting to SSH2 server 171.xxx.xxx.xxx:22.
15:09:00.205 Connection established.
15:09:00.205 Server version: SSH-2.0-OpenSSH_7.4p1 Debian-10 <----
15:09:00.205 First key exchange started.
15:09:00.283 Received a new host key from the server. Algorithm: xxxxxxxxxxx
15:09:00.314 First key exchange completed using ecdh-sha2/nistp521. xxxxxxxxxxx
15:09:00.314 Attempting password authentication.
15:09:00.330 Authentication completed.
15:09:00.470 Terminal channel opened.
Run Code Online (Sandbox Code Playgroud)
奇怪的是,现在它显示服务器版本SSH-2.0-OpenSSH_7.4p1 Debian-10
telnet 174.xxx.xxx.xxx 22
Run Code Online (Sandbox Code Playgroud)
响应SSH-2.0-OpenSSH_7.4p1 Debian-10
systemctl status sshd.service显示和以前一样
network.service 的状态显示了这一点
systemctl status networking.service
? networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: active (exited) since Wed 2017-06-28 15:12:49 CEST; 1min 12s ago
Docs: man:interfaces(5)
Main PID: 1292 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 7372)
CGroup: /system.slice/networking.service
systemd[1]: Starting Raise network interfaces...
systemd[1]: Started Raise network interfaces.
Run Code Online (Sandbox Code Playgroud)
/etc/网络/接口
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
auto eno1
iface eno1 inet static
address 174.xxx.xxx.29
netmask 255.255.255.248
gateway 174.xxx.xxx.25
broadcast 174.xxx.xxx.31
dns-nameservers 8.8.8.8 8.8.4.4
Run Code Online (Sandbox Code Playgroud)
/etc/hosts
127.0.0.1 localhost.localdomain localhost
127.0.1.1 boris.secnet.sec boris
Run Code Online (Sandbox Code Playgroud)
/etc/主机名
boris
Run Code Online (Sandbox Code Playgroud)
/etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
Run Code Online (Sandbox Code Playgroud)
制作了一个 resolv.conf 并在那里添加了名称服务器。将它们放在 /etc/network/interfaces 中有问题。尝试使用和不使用 resolv.conf 并在 /etc/network/interfaces 中指定它们。
NetworkManager 启用/禁用,行为没有区别。没有防火墙。服务器直接连接到互联网,我的客户端机器也是如此。
那么,当systemctl restart network.services被调用时,SSH 会发生什么?为什么重新启动网络服务前后会返回不同的SSH服务器版本?
为什么网络服务在启动时不做,不管它在手动重新启动时做什么?
我对这个完全迷失了,已经测试了好几天。在我升级之前,在相同的网络和界面设置上与 Debian Wheezy 完美配合。完全重新安装,格式化磁盘并安装Stretch。
有没有人知道问题可能是什么?或者怎么解决。
解决了!该机器是 Dell Poweredge 系统,在后台运行他们所谓的 iDRAC - iDRAC 又运行一台 SSH 服务器,该服务器与我在 Debian 中安装的服务器冲突。对我来说,解决方案就是禁用 iDRAC,因为我不使用它,而且我很高兴没有这样做。我不知道这个冲突应该如何解决。