# はじめに
もう何度はまったかわから無いくらい、毎度毎度SSHを使っての接続ではまり、毎回毎回調べ直し(覚えてい無いのが悪いのですが。。。)色々やって解決しているので具体的にどれが正しかったのか不明なところもありますが、自分がはまったところの解決策を書いておきます。
環境
クライアント | サーバー |
---|---|
windows7 | CentOS6.6 |
設定
サーバ側の設定
/etc/ssh/sshd_config
# RSA公開鍵による認証
RSAAuthentication no → yes
PubkeyAuthentication no → yes
AuthorizedKeysFile .ssh/authorized_keys
設定した後は サービスの再起動
$ sudo service sshd restart
個人の設定
windowsで鍵を作成する場合 puttygenを使用して作成した公開鍵 (id_RSA.pub)を
サーバ側の個人ディレクトリの .ssh 配下に保存する
注意点
- 保存するファイル名は authorized_keys
- パーミッションは 他人からアクセスされ無い設定になっている事が重要
ファイルおよび保存しているディレクトリ(.ssh) のパーミッション 600 - 公開鍵は 文頭に 公開鍵の種類を書く。改行を含まない事
- puttygen で作成しファイルに保存すると改行が含まれているのでエディットして消す
鍵の種類
ファイル名 | 形式 |
---|---|
id_RSA | openssh形式 |
id_RSA.ppk | Putty形式 |
着目点
- puttyを使って接続する際 パスフレーズを間違えている時は その旨のエラーダイアログが表示される
- 設定に誤りがある場合は接続エラーになる
- パーミッションが正しく行われていない場合 /var/log/secure ログを見ると その旨のエラーメッセージが出力されている
- サーバの設定で パスワードでのログインを禁止する設定は sshでのログインができるようになっている事を確認してから切り替えないと詰む
# パスワードでの認証を禁止(公開鍵による認証のみにする)
PermitEmptyPasswords no
PasswordAuthentication no
# その他
自分では遭遇していないが起こり得るケース
- ファイアウォールがブロックしている
- sshd自体が起動していない
参考
PuTTYgenについて
http://miscmix.site370.info/server/puttygen.html
PuTTYgenの画面説明と使い方
http://miscmix.site370.info/server/puttygen2.html
毎回忘れているのはここですね
(OpenSSH形式はエディットボックスからコピーしてテキストファイルに貼り付けて保存)
理由がこちらに書かれていました
puttygen を使って暗号鍵作製
http://osksn2.hep.sci.osaka-u.ac.jp/~naga/miscellaneous/winssh/winsshb2.html
先に述べたようにOpenSSH2と商用SSH2では暗号鍵ファイルに違ったフォーマットを採用しています。SSH1では違いがありません。OpenSSHではSSH1とSSH2は共に暗号鍵がコメントを含めて一行の文であることを要求します。PuTTYがSSH2公開鍵を収納するときは商用SSH2に類似のしかし独自のフォーマットを使います。下の三つの中で一番上の図は、id_rsa.pubに収納したSSH2/RSAの公開鍵を秀丸で開いた画面です(注)。収納された文は改行付きで数行にわたっていて、前の図の窓枠にある文字列と違うことに注目しましょう。これをこのままサーバーに持って行ってはいけません。持っていくべき物は上部の窓内にある文字列ですので、コメントを含め全てコピーします。Ctrl キーとCを同時に押せばクリックボードにコピーされます。右クリックからコピーを選んでもコピーできます。