sshdログを確認する方法は?


126

Ubuntu 9.10がインストールされてsshdおり、ログインとパスワードを使用して正常に接続できます。RSAキーログインを設定しましたが、「サーバーがキーを拒否しました」と予想どおりになりました。わかりました、今私sshdは問題を理解するためにログをチェックしたいと思います。調べ/etc/ssh/sshd_configてみた

SyslogFacility AUTH
LogLevel INFO

OK。私が見ている/var/log/auth.logと...空のO_Oです。に変更LoglevelしてVERBOSEも何の助けにもなりません- auth.logまだ空です。sshdログを確認する方法はありますか?


7
syslogの構成を確認しましたか?Ubuntuは実行しませんが、AUTH機能を別のログファイルにリダイレクトする場合があります。たぶん/ var / log / messages?
モリアーティ教授

syslog構成を確認する方法は?残念ながら、私はLinuxがあまり得意でcat /var/log/messages | grep sshはありません:(。何も表示されません:(
。– grigoryvp

あなたは正しいです。/etc/syslog.confAUTHをにリダイレクトし/var/logauth.logます。私はそれを受け入れることができるようにあなたの答えを書いてください:)
grigoryvp

3
私のサーバーでは、sshdが/ var / log / secureに記録します。これは、行の先頭に、ある/etc/rsyslog.confに設定されている「authPrivのを*。」
アイザックBetesh

1
authpriv ?? sshdと何か関係があることを、私たちはどうやって知っているはずだったのでしょうか?:-)
スペンサーウィリアムズ

回答:


7

現時点で誰もシステムを使用していない場合、そのような場合に私がやったことを行うことができます:

  • sshdサービスを停止します(少なくともssh経由でログインしているときにこれを行うことができました)
  • sshdを手動で起動し、いくつかの-dオプションを追加して、より詳細なデバッグ出力を取得します。ファンキーなことがない限り、同じキーを使用し、適切に起動したときに設定する必要があります

143
リモートサーバーでSSHDを停止するのは、本当に悪い考えです。これはほとんどの場合、いくつかの(またはほとんどの)セットアップの問題を解決する可能性がありますが、接続、両端の電源、忘却などがうまくいかない場合は、すぐにロックアウトされます。これは悪いニュースです。
停止

1
手動で停止した後にサービスを開始できる唯一の方法は、別の非SSHリモート接続など、他の種類のアクセスを取得するか、その前に座っていることです。
スペンサーウィリアムズ

26
これは質問にどのように答えますか?私はここで、いくつかの問題のためにあなたのために働いたものではなく、SSHDログファイルをチェックする方法を学ぶことを期待してウェブ検索から着陸しました...くそー彼らが望んでいる質問

4
別のポートで別のsshdを起動できます。その1つに接続します。次に、メインsshdを停止し、ポート22で新しいsshdを開始します。何かが失敗した場合は、DRACまたはクラウド管理を使用してボックスを再起動します。起動時にsshdを起動する必要がありますか?心配ない。
ブルーノブロノスキー

1
@JoelESalasコミュニティは、受け入れられる回答を決定しません。
カスペルド

155

上記のコメントに基づいて回答を作成し、@ Profを評価します。モリアーティと地獄の目

SSH認証の失敗はここに記録されます /var/log/auth.log

以下は、ssh関連のログ行のみを提供するはずです

grep 'sshd' /var/log/auth.log

安全のために、最後の数百行を取得してから検索します(ログファイルが大きすぎると、ファイル全体のgrepがより多くのシステムリソースを消費するため、実行に時間がかかることは言うまでもありません)

tail -500 /var/log/auth.log | grep 'sshd'


8
この答え。緑の矢印の付いた他の答えは偽です。矢印を変更します。
メッシュフィールド14

5
tail -f ...リアルタイムで監視するために使用してみませんか?これは、ログファイルが大きい場合に問題になりますか?
ingh.am

6
less +F ...リアルタイムで「テール」し、テールよりもはるかに強力です
-northben

5
そしてlnav、より少ない/尾よりも良いです
ウェインワーナー

7
PS:サーバーがRed Hat(CentOS)の場合、sshd / loginレコードログのパスは/ var / log / secureです(特定の日付のログファイルについても/ var / logフォルダーを確認してください)。:この回答を参照してくださいserverfault.com/questions/465833/...
ブライアンHellekin

15

失敗した接続を簡単に再試行できる場合、簡単な方法の1つは、次のような空きポートでSSHサーバーを起動すること2222です。

/usr/sbin/sshd -d -p 2222

次に、接続を再試行します。

ssh -p 2222 user@host

別のポートを使用することで-p 2222、メインSSHサーバーを停止する必要がなくなり、ロックアウトされる可能性があります。

参照:https : //unix.stackexchange.com/a/55481/32558


1
サーバーへのSSHアクセスのみがある場合は特に、最適なオプションの1つです。sshサーバーを停止して接続をデバッグすると、セッションが中断されます。別のポートで新しいsshデーモンを起動し、そのポートを使用してログインをテストするだけです。
アッティラアンタル

1

sshdに関するすべてのログメッセージを表示するには、次を実行します。

grep -rsh sshd /var/log |sort

2
ログはMar 14 19:52:04、年を除外し、簡単に並べ替えられないようなエントリで始まります(ただしsort --month-sort、年の境界を越えないと仮定すると幸運になるかもしれません)。ログファイル自体は既にソートされているため、正しい順序でスキャンする必要があります。また、grep -rログが大きいシステムでは、再帰呼び出しが非常に遅くなります。HTTPDログのようなものをさらにスキャンする理由はありません。
アダム・カッツ

1

あなたはできる tail -f /var/log/auth.log


1
ServerFaultへようこそ。質問を読みましたか?彼はそのファイルにデータを取得していません。 tailデータがない場合は役に立たない。

@chicksそれは面白いです。ほとんどの投票での回答は、このようにほぼ同じです
。– Qback
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.