SSHサーバーが機能しない(停止するまで再起動する)


12

Ubuntu Server 10.04.1を実行しています。ssh経由でサーバーにログインしようとしても、できませんでした。代わりに、connection refusedエラーが発生しました。マシンにpingを実行しようとして、返信がありました!したがって、明確な理由は、SSHデーモンが停止していることです。

再起動後、ssh経由でサーバーにログインできました。しばらくして、ログを調べ/var/log/syslogて次の記録を見つけました。

Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2465) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2469) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2473) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2477) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2481) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2485) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2489) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2493) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2497) terminated with status 255
Jan 16 10:57:09 myserver init: ssh main process ended, respawning
Jan 16 10:57:09 myserver init: ssh main process (2501) terminated with status 255
Jan 16 10:57:09 myserver init: ssh respawning too fast, stopped

同様の問題/解決策を探しました。一部の人々は、これはネットワークの前に開始しようとしているデーモンSSHによって引き起こされると、彼らは変更することが示唆されていることを言ったListenAddress/etc/ssh/sshd_configあることを0.0.0.0。これは私の場合の原因ではないと思います。なぜなら、システムが稼働した後に問題が発生するからです。

何がこれを引き起こしているのでしょうか?これはUbuntu Serverであり、SSHを使用してリモートで実行およびアクセスする必要があります。

更新:

ここに私が見つけたログスニペットがあります/var/log/auth.log

Jan 16 10:56:38 myserver sudo:     user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/usr/bin/vim /etc/ssh/sshd_config
Jan 16 10:57:09 myserver sudo:     user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/etc/init.d/ssh reload
Jan 16 10:57:09 myserver sshd[1465]: Received SIGHUP; restarting.
Jan 16 10:57:09 myserver sshd[2461]: Server listening on 0.0.0.0 port 22.
Jan 16 10:57:09 myserver sshd[2465]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2465]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2469]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2469]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2473]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2473]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2477]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2477]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2481]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2481]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2485]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2485]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2489]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2489]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2493]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2493]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2497]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2497]: fatal: Cannot bind any address.
Jan 16 10:57:09 myserver sshd[2501]: error: Bind to port 22 on 0.0.0.0 failed: Address already in use.
Jan 16 10:57:09 myserver sshd[2501]: fatal: Cannot bind any address.

SSHデーモンをリロードした後、このエラーが表示され始めたようです。使用を避けssh reloadssh restart代わりに使用する必要がありますか?


これもチェックアウトしてください。sshd_config sintaxis bugs.launchpad.net/ubuntu/+source/openssh/+bug/911753

回答:


7

SSHでフラッシングが始まる直前何が起こったかを確認する必要がありsyslogます。ネットワークサブシステムが停止した場合、sshd失敗の原因を説明できます。

私もチェックし/var/log/auth.logます。それはsshdのログと、それはあなたのより良いエラーメッセージを与えるかもしれません。


ありがとう!auth.logファイルで多くのエントリを見つけ、質問を更新しました。
カレド

reload有効なアクションである必要があります。それはすべき内部の再起動をトリガーする(そしてちょうど捕まってしまったことをしようとしているように見えます)。もう一度リロードしてみて、再びスタックするかどうかを確認してください。
オリ

実際、リロードは有効なはずですが、バグがあります。詳細については私の答えをご覧ください。
SpamapS

16

12.04ボックスで同じ問題が発生しました。すなわち同じ症状。残念ListenAddressながら、に、inetおよびのinet6アドレスを含む句を導入したときは常に起こりましたsshd_config。要するに、これは不正な形式の症状のように見えsshd_configますが、ログファイルにはそのようなものはありませんでした。

トラブルシューティング sshd

このような場合に一般的に非常に便利だと思うのは、sshdデーモン化させずに起動することです。私の場合の問題は、意味のあるものも何syslogauth.log示さなかったことです。

ターミナルから開始したとき、私は得ました:

# $(which sshd) -Ddp 10222
/etc/ssh/sshd_config line 8: address family must be specified before ListenAddress.

ずっといい!このエラーメッセージにより、問題点を確認して修正することができました。どちらのログファイルにもこの出力は含まれていません。

注意:少なくともUbuntuでは、絶対パスの要件$(which sshd)を満たすための最良の方法sshdです。そうしないと、次のエラーが表示されますsshd re-exec requires execution with an absolute path-p 10222作るには、sshdこれは潜在的に実行していると衝突しないようです-設定ファイルを上書きし、その代替ポートでリッスンsshdインスタンス。ここで空きポートを選択してください。

この方法は、認証の問題であろうと他のタイプであろうと、問題の発見に何度も役立ちました。に詳細な出力を取得するにはstdout、を使用します$(which sshd) -Ddddp 10222dd冗長性を高めるために追加されていることに注意してください)。より良いデバッグのチェックのためにman sshd


この方法の主な利点は、デフォルトのポートで再起動sshdすることなく構成を確認できることですsshd通常、これは既存のSSH接続に干渉することはありませんが、私はそれを見てきました。そのため、リモートサーバーへのアクセスを遮断する前に(可能性として)構成ファイルを検証することができます(たとえば、一部のVPSや、帯域外アクセスに追加料金を支払う必要がある物理サーバーの場合もあります)マシンへ)。


3
あなたの直接呼び出しのトリックが私のベーコンを救った。sshd_configファイル(Chefから生成)にエラーがあり、この手法を使用して解決できました。みんなに投稿してくれてありがとう。
ピーターレアード

4

これはバグ#687535の結果であるようです。バグ#687535は最近修正され、提案された更新としてmaverickとlucidの両方にアップロードされました。

https://bugs.launchpad.net/ubuntu/lucid/+source/openssh/+bug/687535

皆さんがそこに行き、テストケースを試して(TEST CASEを検索)、提案された修正をインストールする前後に結果を投稿することをお勧めします。これは、SRUチームが検証が完了したことを判断し、更新としてリリースするのに役立ちます。


2

/etc/ssh/sshd_config、すべてのyesおよびnoオプションが小文字であることを確認します。たとえば、を設定するとPermitRootLogin No、sshは起動しません。それは実際にある必要がありますPermitRootLogin no


1

再起動後、Linode上のUbuntu 11.10イメージで同様の問題が発生しました。sshサービスはsyslogで生成します。

Mar 18 06:31:33 servername kernel: init: ssh main process ended, respawning
Mar 18 06:31:33 servername kernel: init: ssh main process (3419) terminated with status 255
Mar 18 06:31:33 servername kernel: init: ssh main process ended, respawning
Mar 18 06:31:33 servername kernel: init: ssh main process (3422) terminated with status 255
Mar 18 06:31:33 servername kernel: init: ssh respawning too fast, stopped

これはテストボックスであり、約60日間の稼働時間があったため、途中でsshd_configの下部に追加するものをインストールしました。

ClientAliveInterval 60
ClientCountAliveMax 60

これらの行にコメントを付けると、sshを開始できます。


0

Ubuntu sshは起動せず、syslogは「init:ssh main process(2044)terminate with status 255」を生成しました

/ usr / sbin / sshd -Ddp 10222

確かに私のためにsshd_config行エラーを特定するために働いた


-1

同じ問題があり、上位のソリューションは機能しませんが、私はこれに対する解決策を持っています。

root@imt:~# sshd
sshd re-exec requires execution with an absolute path
ssh localhost
ssh: connect to host localhost port 22: Network is unreachable

ドキュメントごとにパスは問題ないので、手動でsshdを実行します。

root@imt:~# /usr/sbin/sshd 
/var/run/sshd must be owned by root and not group or world-writable

/ var / run / sshdパーミッションは。

root@imt:~# ls -ld /var/run/sshd
drwsrwsrwt 2 root root 40 Jan  5 12:58 /var/run/sshd

root@imt:~# chmod 755 /var/run/sshd

その後、罰金。ssh localhostを実行して確認します。

root@imt:~# ssh localhost 
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is 64:93:fd:ab:4c:f9:7b:8a:86:60:22:f7:56:fa:ea:cc.
Are you sure you want to continue connecting (yes/no)? yes

1
これは役立つガイドsshdですが、ログの非常に異なるエラーメッセージからわかるように、OPが正常に実行されなかった原因ではないことは明らかです。-1
デビッドフォースター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.