ssh公開鍵接続のエラー表示

ひっさびさにlinuxサーバ弄っててよそのサーバにssh(公開鍵)接続しようとしたら以下のようなエラーが発生

$ ssh server01.xxx.xxx.jp -l username -i ~/.ssh/keyFile02
Permission denied (publicky,gssapi-with-mic).

Web調べてみたところ,どうやら秘密鍵ファイルのパーミッションの設定が違うせいだとか.
えー?おかしいなー?

# chmod 700 ~/.ssh/keyFile02

とやっても同じ結果.


ってよく確認してみたら,原因はまったく別で,
指定した鍵ファイル(上の例では ~/.ssh/keyFile02)が接続しようとしているサーバの鍵(上の例だとserver01)ではなく,別のサーバのものになってただけのことだった.

というわけで,ssh公開鍵接続でのエラーの整理
下記はRed Hat Linux ES4 環境下で実験したものなので,他の環境では違うかも.悪しからず.

  • パスワード間違い

パスワードの再入力を求められる.
3回失敗すると,

Permission denied (publicky,gssapi-with-mic).

表示.

    • 対処法:正しいパスワードを入力する
  • 鍵ファイル指定誤り

本件の例.パスワードが一致しようがしまいが,即

Permission denied (publicky,gssapi-with-mic).

表示.

    • 対処法:鍵ファイルが接続先サーバのものになっているかどうか確認.正しい鍵ファイルを指定する.

sshコマンドをたたくと以下のようなWARNINGが表示されるが,そのままパスワード入力ができ,サーバへの接続も可能.


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for '/[username]/.ssh/keyFile01' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /[username]/.ssh/keyFile01
Enter passphrase for key '/[username]/.ssh/keyFile01


ちなみにscpコマンドでも同様のことが起きる.