SSHと公開鍵経由でユーザーBに接続できない(ユーザーAは接続できる)

SSHと公開鍵経由でユーザーBに接続できない(ユーザーAは接続できる)

解決しました。user_B私を騙したのは、ホーム ディレクトリのグループ書き込み可能ビットでした。

これについてはアイデアが尽きています。どんなヒントでも大歓迎です。

次の設定を検討してください:

  • Ubuntuを実行しているサーバーS、ユーザーboldewynuser_Aおよびuser_B
  • 2 台のラップトップAと にはB、それぞれローカル ユーザーboldewyn(id_rsaにログインするためのキーを持つS) と 2 番目のキーid_rsa_A/ がありますid_rsa_B。すべてのキーは に保存されています/home/boldewyn/.ssh。どちらも Ubuntu を実行しています。
  • user_Auser_Bパスワードが空の場合、S公開鍵と SSH 経由でのみログインが可能になります。

    +--------+            +-------------------+            +--------+
    | laptop |            |       server      |            | laptop |
    |   A    |            |         S         |            |   B    |
    |        |            |                   |            |        |
    +--------+    SSH     +-------------------+    SSH     +--------+
    |id_rsa_A|------------|< user_A   user_B >|------------|id_rsa_B|
    +--------+            +-------------------+            +--------+
    |id_rsa  |------------|<    boldewyn     >|------------|id_rsa  |
    +--------+            +-------------------+            +--------+
    

何が効果的か:

  • どのラップトップからでもログインできますboldewynid_rsaおよびS:/home/boldewyn/.ssh/authorized_keys

  • Aラップトップからユーザーとしてログインしますuser_Aid_rsa_Aおよびを使用S:/home/user_A/.ssh/authorized_keys:)ssh -i id_rsa_A user_A@S

私の問題:ラップトップでは、Bでまったく同じセットアップが失敗しますuser_B。 でログインできませんS。何らかの理由でキーが受け入れられず、パスワード プロンプトが表示されるためです (user_Bにはパスワードがないため、このオプションはありません)。

確認したこと:

  • ラップトップの場合B:

    • ~/.sshおよびそのすべてのコンテンツの権利を確認しました
    • の公開部分をsid_rsa_Bに入れて、: が機能します (キーが破損していないなど)boldewyn.authorized_keysssh -i id_rsa_B boldewyn@S
    • ssh -vvv: まあ、あまり役に立ちません。ただ、メソッドをスキップするということをある時点で伝えるだけですpublickey。理由は示されていません。
  • サーバー上S:

    • 3回チェックされたuser_Bs.authorized_keysファイル
    • およびそのすべてのコンテンツの権利を確認しました/home/*/.ssh(特にuser_Aと を比較user_B)。
    • 設定されていることを確認しました$HOME(経由sudo -u user_B -i
    • すべてのユーザーが(ちなみに )/etc/ssh/sshd_configであることを確認しましたAllowUsersAllowGroups

他のもの:

user_Aとの唯一の違いはuser_B、後者を で作成したことです(ホーム ディレクトリは作成しないでください。すでに存在していました)。ただし、と関連するすべての子が とそのプライマリ グループによって所有されているadduser -Mことを 3 回確認しました。/home/user_Buser_B

答え1

3回確認しましたか/home/user_B(および)/home/user_B/.sshには/home/user_B/.ssh/authorized_keys適切な権限がありました:ユーザー以外は書き込み不可つまり、モード 755 またはより制限的ですか?

答え2

これらのキーを生成した方法に関係しているのではないかと思います。もう一度試してください。キーは ssh-keygen 機能で生成されます。おそらく、1 セットのキーが生成されたときに、生成プロセスでパスフレーズが使用されました。パスフレーズの入力を求められたら、Enter キーを押してみてください。そのキーの pub 部分を ubuntu にコピーします。.ssh/authorized_keys ファイル内の問題のあるエントリを必ず削除してください。2 つ目の考え: pub ファイルを cat する場合は、pub ファイルを authorized_keys ファイルにコピーするときに、> (replace_) ではなく >> (append) を使用してください (cat id_rsa.pub >> .ssh/authorized_keys)。

ちょっと驚きました。職場では Solaris と Cygwin を使って、自宅では Centos、Slackware、Debian、Ubuntu で構成された Linux LAN を使って、自分の方法を使ってきました。秘密鍵が公開鍵と一致しない可能性はありますか? 鍵を生成するとペアになり、公開鍵は従来どおり、ターゲット マシンのホーム ディレクトリの下にある .ssh/authorized keys ファイルにコピーされます。鍵を再生成する場合は、新しい .pub ファイルをコピーする必要があります。新しい秘密鍵は、古い公開鍵とペアになりません。ホーム ディレクトリに .authorized_keys フォルダがあるようですが、私は試したことがありません。通常は /home/user_name/.ssh/authorized_keys フォルダにあると思います。Solaris のバージョン 6 以降、Freebsd、Linux のさまざまなイテレーションやフレーバーを使用しても、問題は発生していません。幸運を祈ります。

アラン

関連情報