2013-06-04

公開鍵暗号ログインができなくてハマった→パーミッションとvimペースト時の問題だった

要約:


  • chmod 700 せよ
  • vim ではペーストする前に i


まえがき

使用環境は Win 7 (64 bit) + Poderosa 4.3.8b & CentOS 6.3. 最初は Poderosa の問題かと思っていたが、違った。web を見るといろんな情報がある。自分の場合のハマりどころを以下にメモしておく。

鍵の作成は、普通に Poderosa のメニューの「ツール > SSH鍵作成ウィザード」から行った。公開鍵は OpenSSH 形式だけ作った。

Linux での作業は、root ログインや su でなく、自分のアカウントからパスワードログインして、ふつうに mkdir .ssh して vim authorized_keys する。root からやる場合は、.ssh と authorized_keys の両方とも chown username:username しておく必要があるはず。

もちろん /etc/ssh/sshd_config の方は su していじるがここは割愛。普通に
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
のコメントアウト外すだけだったと思う。あと、
PasswordAuthentication yes
no にするのは公開鍵暗号ログインができてからにすることを強く推奨。実は一度、先走ってこれやってしまい、入れなくなって、遠くの建物においてある計算機まで行くはめになった……(後輩が行ってくれた)

その上で、以下に気をつける。

1. 「.ssh ディレクトリ」と「authorized_keys ファイル」のパーミッションは 700(など)にする

色々試してわかったことだが、次の条件が必要

  • 「.ssh ディレクトリ」→ たとえば chmod 100 .ssh で OK. ls -la の結果でいうと、左から4つ目に x が必要で、右の6つのなかに w があるとだめ。「自分は実行でき、他人は書き込めない」でいいのかな。だけど 100 だと ls すらできなくなるので 500 の方がいいか。
  • .ssh ディレクトリ内に作る「authorized_keys ファイル」→ たとえば chmod 400 authorized_keys で OK.  ls -la の結果でいうと、左から4つ目に x が必要で、右の6つのなかに w があるとだめ。こちらは「自分は読めて、他人は書き込めない」になるのかな。

面倒なら、どっちも chmod 700 すれば問題なし。

これまでパーミッションについてほとんど全く気にしていなかった。勉強になった。

2. 公開鍵を authorized_keys に vim でペーストする際は insert mode で行う

$ vim authorized_keys した後で、公開鍵をペーストする際、insert mode に入らずに Alt-V すると最初の数文字が欠ける。つまり vim を開いたらまず i してから Alt-V ということ。実は自分は主にこっちでハマっていた……

No comments: