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
-
- 対処法:鍵ファイルのパーミッションを700(rwx------)にする.
ちなみにscpコマンドでも同様のことが起きる.