SSH 公開鍵は root では機能しますが、ユーザーでは機能しません。

SSH 公開鍵は root では機能しますが、ユーザーでは機能しません。

重複の可能性:
公開鍵認証を使用してもSSHパスワードプロンプトが表示され続けるのはなぜですか?

リモートサーバーを設定しています。sshd公開鍵のみを使用するように設定します。リモートコンピュータに同じアカウントを持つ2つがあるため、.ssh/authorized_keys同じキーを使用してログインできます。どちらかはルートで、試してみると次のようになります。

ssh -i /path/to/privatekey [email protected]

私は入った。問題ないただし、他の(権限のない)ユーザーと一緒に試してみると、次のようになります。

ssh -i /path/to/privatekey [email protected]

失敗します。 -v公開された:

debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /path/to/privatekey
debug1: Authentications that can continue: publickey
debug1: Trying private key: /path/to/privatekey
**debug1: key_parse_private_pem: PEM_read_PrivateKey failed**
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/path/to/privatekey': 

root@server ログインが成功した後、アスタリスクの付いた行は表示されません。これはまた、ssh-agentキーのパスワードをすでに持っているので奇妙です。 root@serverとしてログインするように求められません。 bob@server ログインが失敗して終了しました:

debug1: read PEM private key done: type DSA
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

権限などが/home/bob/.ssh正しい[ただし、.sshディレクトリには実行ビットはありません。コメントを参照]。これは実際にはシステムのアップグレード/再インストールであり、構成を/etc含む以前のバックアップがあります。sshd私は何も変更しませんでした(パスワード認証を許可するとbobは入りますが)。これが以前にgitを介してシステムを使用していた方法です。したがって、git remotebob @ serverを使用してsshを介して入力された複数のプロジェクトIDがあります。 、そしてそれを変えたくない、sshd昔のように機能できないから…

答え1

次の点をご確認ください。

  1. ディレクトリの権限は.ssh700です。ディレクトリに入るには、そのディレクトリに対する実行権限が必要です。

  2. ファイル権限はauthorized_keys600でなければなりません。

システム管理者として、私はこの問題に直面しました。

関連情報