0

先日、Slackware ボックスに公開鍵/秘密鍵を使用して SSH をセットアップする方法を見つけようとしていました。

何かがまだ私を混乱させています:

  • sshd_config ファイルでは、AuthorizedKeysFile ディレクティブのパスを設定するときに、相対参照または絶対参照を使用する必要がありますか? またはのいずれかになる可能性があることを読みました。

    現在、AuthorizedKeysFile /root/.ssh/authorized_keys に設定されています

  • ssh-keygen を使用してキーを生成する場合、クライアント マシンでキーを生成し、公開キーをサーバーにコピーして、authorized_keys ファイルに追加する必要があると確信しています。これは正しいです?

  • .ssh ディレクトリと authorized_keys ファイルへのアクセス許可が正しいことは確かです。

    drw------ .ssh
    drwx--x--- 承認済みのキー
    -rw----r--既知のホスト

  • ps -e aux | を実行しました。grep sshd を実行して、sshd プロセスを実行していたユーザーを確認します。結果は次のとおりです。moros は、ボックスにログインするために使用している標準ユーザー アカウントです。

    ルート 5449 0.0 0.0 4112 0980 ? Ss 01:06 0:00 /usr/sbin/sshd
    ルート 5574 0.0 0.1 6700 2020 ? Ss 15:22 0:00 sshd: moros [priv]
    root 5576 0.0 0.0 6700 1272 ? S 15:22 0:00 sshd: moros@pts/0
    root 5609 0.0 0.0 2204 0628 pts/0 S+ 15:42 0:00 grep sshd

  • 私のsshd_configの一部は次のようになります

    ポート 22
    プロトコル 2

    SyslogFacility AUTHログレベル
    VERBOSE

    PermitRootLogin はい
    RSAAuthentication はい
    PubkeyAuthentication はい
    AuthorizedKeysFile /root/.ssh/authorized_keys

    PasswordAuthentication はい
    PermitEmptyPasswords いいえ

    残りは標準のデフォルト値です。

とにかく、これまでに特定できたことがいくつかあります。Slackware マシンの有効なユーザーのパスワードを使用してクライアント マシンからログインできるため、ssh が機能していることはわかっています。ssh-keygen rsa スタイルを生成し、scp を使用して公開鍵をサーバーにコピーしました。現時点では、authorized_keys が正しく設定されていると確信しています。cat file >>authroized_keys を実行し、サーバーにコピーした公開鍵を追加しました。このファイルは、各行が ssh-rsa AAAAB3Nza..... の形式になっています。可能な限り多くの情報を取得するために、VERBOSE ロギングをオンにしました。昨夜、ログに「'ip' ポート 'num' ssh2 からの moros の公開鍵に失敗しました。

このログ メッセージから、問題の原因を 2 つのうちの 1 つに絞り込むことができます。sshd が自分の authorized_keys ファイルを見つけられないため、キーが失敗した理由、または .ssh フォルダーまたは認証されたキー ファイルへのアクセス許可が正しくないことが原因です。

過去に ssh キーと slackware で同様の問題に遭遇した人はいますか?

アップデート

結局のところ、AuthorizedKeysFile ディレクティブには .ssh/authorized_keys と記載する必要があります。
これは、ルート以外でログインしたときに機能するようになりました。

4

1 に答える 1

0

では、接続しようとしている人のためにキーを探しに行くようにAuthorizedKeysFile /root/.ssh/authorized_keys指示しています。これは、root 以外のユーザーには機能しません。のデフォルトに固執する必要がありますsshd/root/.ssh/authorized_keys~/.ssh/authorized_keys

キーペアはどこでも生成できます。簡単に言うと、公開鍵は接続先のサーバーに存在し、秘密鍵は接続先のクライアント フォームに存在する必要があります。

権限はかなりめちゃくちゃです。それらは次のようになります。

drwx------- .ssh
-rw------- authorized_keys
-rw-r--r-- known_hosts

authorized_keysディレクトリではなく、ファイルにする必要があります。

また、秘密鍵のパーミッションが であることを確認して-rw-------ください。

于 2013-11-29T22:21:56.227 に答える