2011/11/03

sshの際鍵認証するようにする

最近sshをするたびにパスワード入れるの面倒なので、
とりあえず鍵で認証しよう、という気になった。
  • 1 参考
  • 2 作業内容
    • 2.1 クライアント側
    • 2.2 サーバ側

2 作業内容

2.1 クライアント側

鍵の作成から始める
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kohei/.ssh/id_rsa): [Enter]
Enter passphrase (empty for no passphrase): (パスフレーズの入力)
Enter same passphrase again: (上のパスフレーズと同じものを入力)
これによって~/.ssh以下に、公開鍵(id_rsa)と秘密鍵(id_rsa.pub)が作成される。
秘密鍵は重要なのでパーミションなど、適切かチェックしておく。
公開鍵の方はサーバ側に置くことになる。
scpコマンドなど使ってサーバ側に置いておこう。
$ scp ~/.ssh/id_rsa.pub <username>@<server>:~/id_rsa.pub
最後に
$ ssh-add ~/.ssh/id_rsa
Enter passphrase for id_rsa: 
Identity added: id_rsa (id_rsa)

2.2 サーバ側


まず、クライアントからコピーしてきた公開鍵を認証に使うために適当なファイルに書き加える。
$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
次に、sshd_configの編集をする。
最低限、以下のようにするのではないかと思っている。(そもそもrootログインをなくしたりするかもしれない。)
PermitRootLogin without-password
PasswordAuthentication no
AllowUsers <username>
今回は以下のような設定を書いた。以下に書いてないものはデフォルトのままにしてある。
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizeKeyFile .ssh/atuthorized_keys
PermitRootLogin without-password
PasswordAuthentication no
ここまで設定しておけば、sshdを再起動して設定を反映させればオッケー
$ sudo /etc/init.d/sshd restart

以上で作業は終わり。
クライアント側からログインしてみよう!
Date: 2011-11-03 17:02:48 JST

0 件のコメント:

コメントを投稿