TeratermのSSH公開鍵認証で認証に失敗する!公開鍵ディレクトリの権限に問題はない?

TeraTermなどで公開鍵認証を使用する場合、公開鍵と秘密鍵が必要です。

TeraTermの鍵作成機能やssh-keygenコマンドを使用して公開鍵、秘密鍵を作成し、
クライアント側(接続元)に秘密鍵を、サーバ側(接続先)に公開鍵を配置します。

秘密鍵を作成する際にパスフレーズと呼ばれるパスワードを設定し、クライアントから接続する際にパスフレーズを入力して認証を行います。

クライアントからの認証時に誤ったパスフレーズを入力すると、当然認証に失敗します。
(TeraTermでは「認証に失敗しました。再試行してください。」と表示されます。)

しかし絶対にユーザ名/パスワードは間違っていない場合でも認証に失敗することがあります。
そういった場合はサーバ側の設定を疑ってみましょう。


公開鍵はサーバ上の接続ユーザホームディレクトリ内の.sshディレクトリに配置します。
(/home/xxx/.sshなど)

ssh公開鍵認証ではこの.sshディレクトリのパーミッションがとても重要で、所有者(接続ユーザ)以外に書き込み権限が付与されていると認証に失敗します。
chmodで777などが設定されていると接続できなくなります。

通常は権限として700辺りを付与することが多いのですが、権限を広げる方なら大丈夫だろうと安易に権限を変更してしまうと落とし穴にハマります。

また、.sshディレクトリだけではなく接続ユーザホームディレクトリでも同様に所有者(接続ユーザ)以外に書き込み権限が付与されていると認証に失敗するようです。

 

コメント

  1. 匿名 より:
    SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    あざああああああああっす!
    接続ユーザのホームディレクトリだったのか。。。
    ドはまりして半日潰してました。