最近は安定した環境でばかり開発をしていたので、色々新しい環境を試したい今日このごろ。
EC2で色々やってみたいと思い遅ればせながら導入してみた。
まずsshの鍵認証。
キーペア作成時に保存を促されるpemファイルからのログインだけど、これは問題ない。
さすがにこのくらいじゃ詰まらない。
何に引っかかったかというと、タイトルのとおりでもあるが、
ユーザを追加した際、鍵を手動で作成しても有効にならない!
パスワード認証にしようとも思ったが、
/etc/ssh/sshd_config
で
PasswordAuthentication yes
としても、有効にならない。なんでーー?
EC2の仕様なのか、centos7の仕様なのかわからないが、パスワード認証はあきらめ、
どうせなら鍵認証の方向で解決方法を模索した。
というわけで参考にした記事
引用元 http://qiita.com/dahugani/items/e1fc5c212bf6a7365f8f
まぁほぼ丸コピだけど、少しアレンジ
コマンドは当該のユーザ(この例だとnewuser)で行います。
cd /home/newuser mkdir .ssh chmod 700 .ssh cd .ssh ssh-keygen -t rsa mv id_rsa.pub authorized_keys chmod 600 authorized_keys cat id_rsa
こんな感じで、鍵を作成し、表示された id_rsaの中身(秘密鍵)を、ローカルのテキストエディタにでも貼っつけて保存。
ポイントは、ファイル名を公開鍵のファイル名を authorized_keys にすること。
これがわかんなくて何時間も詰まってました。
以前使ってたサーバーでは、公開鍵のファイル名はなんでもよかったんだけどなあ。
sshd_configにバッチリ 『AuthorizedKeysFile .ssh/authorized_keys』 って書いてありました。
なおローカルに保存したファイルは、後々使うこともあるので、管理しやすいファイル名にしときましょう。
んで、このファイルを PuTTy Key Generator (puttygen.exe) でインポート
Key_commentにわかりやすいコメントつけておいたほうが、後でわかりやすいです。
そんで Save private key で秘密鍵を作成します。
作成した秘密鍵を Pageantに登録しておわり。
teratermや、filezillaで接続できるか試してみましょう。
また、ユーザごとに鍵を分ける必要がなければ、
初期ユーザ(今回のケースだとcentos)の鍵がそのままつかえるので
ルート権限で下記のように
cd /home/newuser cp -rp /home/centos/.ssh ./ chown -R newuser:newuser .ssh
こっちのほうが、ローカル側での設定がなにも要らないので
(sshログインできているということは、初期ユーザでの鍵設定が完了している)、
すごく簡単に完了します。