
解決しました。user_B
私を騙したのは、ホーム ディレクトリのグループ書き込み可能ビットでした。
これについてはアイデアが尽きています。どんなヒントでも大歓迎です。
次の設定を検討してください:
- Ubuntuを実行しているサーバー
S
、ユーザーboldewyn
、user_A
およびuser_B
- 2 台のラップトップ
A
と にはB
、それぞれローカル ユーザーboldewyn
(id_rsa
にログインするためのキーを持つS
) と 2 番目のキーid_rsa_A
/ がありますid_rsa_B
。すべてのキーは に保存されています/home/boldewyn/.ssh
。どちらも Ubuntu を実行しています。 user_A
user_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 | +--------+ +-------------------+ +--------+
何が効果的か:
どのラップトップからでもログインできます
boldewyn
(id_rsa
およびS:/home/boldewyn/.ssh/authorized_keys
A
ラップトップからユーザーとしてログインしますuser_A
(id_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
およびそのすべてのコンテンツの権利を確認しました- の公開部分をs
id_rsa_B
に入れて、: が機能します (キーが破損していないなど)boldewyn
.authorized_keys
ssh -i id_rsa_B boldewyn@S
ssh -vvv
: まあ、あまり役に立ちません。ただ、メソッドをスキップするということをある時点で伝えるだけですpublickey
。理由は示されていません。
サーバー上
S
:- 3回チェックされた
user_B
s.authorized_keys
ファイル - およびそのすべてのコンテンツの権利を確認しました
/home/*/.ssh
(特にuser_A
と を比較user_B
)。 - 設定されていることを確認しました
$HOME
(経由sudo -u user_B -i
) - すべてのユーザーが(ちなみに )
/etc/ssh/sshd_config
であることを確認しましたAllowUsers
AllowGroups
- 3回チェックされた
他のもの:
user_A
との唯一の違いはuser_B
、後者を で作成したことです(ホーム ディレクトリは作成しないでください。すでに存在していました)。ただし、と関連するすべての子が とそのプライマリ グループによって所有されているadduser -M
ことを 3 回確認しました。/home/user_B
user_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 のさまざまなイテレーションやフレーバーを使用しても、問題は発生していません。幸運を祈ります。
アラン