解決しました!このマシンは、バックグラウンドでiDRACと呼ばれるものを実行するDell Poweredgeシステムです。iDRACは、Debianにインストールしたものと競合するSSHサーバーを実行していました。私にとっての解決策は、iDRACを使用しないので無効にすることでしたが、使用しないことがうれしいです。その対立がどのように解決されるべきだったのか私には分かりません。
マシンにDebianStretchをインストールしたばかりです。最小限のインストールでは、openssh-serverをインストールし、ネットワークインターフェイスを設定する以外はほとんど何もしていません。私が抱えている問題は、ネットワーキングサービスに関連しているようです。
起動からすぐに、SSH経由でサーバーにリモート接続できません。この時点でサーバーはインターネットに接続されているので、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.
サーバーのバージョンに注意してくださいSSH-2.0-OpenSSH_5.8
telnet 174.xxx.xxx.xxx 22
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.
Networking.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.
ネットワークサービスを再起動した後
systemctl restart networking.service
このコマンド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.
ここで奇妙なのは、サーバーのバージョンが表示されるようになったことですSSH-2.0-OpenSSH_7.4p1 Debian-1
telnet 174.xxx.xxx.xxx 22
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.
/ etc/network/interfaces
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
/ etc/hosts
127.0.0.1 localhost.localdomain localhost
127.0.1.1 boris.secnet.sec boris
/ etc/hostname
boris
/etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
Resolv.confを作成し、そこにネームサーバーを追加しました。/etc/network/interfacesにそれらを置くだけで問題がありました。 resolv.confがある場合とない場合の両方を試し、それらを/ etc/network/interfacesで指定しました。
NetworkManagerが有効/無効であり、動作に違いはありません。ファイアウォールはありません。サーバーはインターネットに直接接続されています。クライアントマシンについても同じことが言えます。
では、systemctl restart network.servicesが呼び出されると、SSHはどうなりますか?ネットワーキングサービスが再起動される前と後に、異なるSSHサーバーバージョンをスローするのはなぜですか?
ネットワークサービスは、手動で再起動したときに何をしても、起動時に機能しないのはなぜですか?
私はこれに完全に迷い、何日もテストしてきました。アップグレードする前は、同じネットとインターフェースの設定でDebianWheezyで完全に正常に動作しました。完全な再インストールを行い、ディスクをフォーマットし、Stretchをインストールしました。
問題が何であるかについて誰かが手がかりを持っていますか?またはトラブルシューティングの方法。
解決しました!このマシンは、バックグラウンドでiDRACと呼ばれるものを実行するDell Poweredgeシステムです。iDRACは、Debianにインストールしたものと競合するSSHサーバーを実行していました。私にとっての解決策は、iDRACを使用していないので無効にすることでしたが、使用しなくてよかったです。その対立がどのように解決されるべきだったのか私には分かりません。
バージョンの不一致は私には非常に疑わしいようです。
systemctl status
は非常に明確であり、正常に/usr/sbin/sshd
を実行しています。システムが最初に/usr/sbin/sshd
で非Debianバイナリで起動した場合は非常に奇妙ですが、起動すると、適切なDebianバイナリが/usr/sbin/sshd
で利用可能になりました。
どちらの場合も同じIPアドレスに接続していると主張しているので:-P、SSHデーモンに到達する前に何かが接続を傍受している必要があります。これは、サーバー上の非常に混乱した「Lights out management」であり、ハードウェアレベルでssh接続を傍受している可能性が高いと思います。 (たとえば、失敗したSSH接続の試行は、Debianの/var/log/auth.log
、またはtcpdump port ssh
にも表示されません)。