■公開鍵認証方式でsshを利用する
sshdは攻撃されやすいので、できるだけ標準状態からport及び設定を見直すことを推奨。ここではパスワードを使わず公開鍵でsshを利用する。ここではCentOS5サーバの初期状態から設定追加する状況を想定した手順を書いておく。
1)自マシンで鍵を作成する(MacOSXをクライアントとする)
[code]$ ssh-keygen -t rsa -C “myaddress@example.com”[/code]
パスワード入力時にエンターを押すことでパスワード不要の鍵が作成可能
作成が完了すると以下に必要ファイルが作成される
~/.ssh/id_rsa(秘密鍵)
~/.ssh/id_rsa.pub(公開鍵)
上記はRSA鍵の場合。DSA鍵を作成する時は以下。
DSAではid_dsa,id_dsa.pubのファイルが作成される。
[code]$ ssh-keygen -t dsa -C “myaddress@example.com”[/code]
自アドレスを入力するのは後からキーの持ち主を判別するため。
実際に入力するテキストはなんでもOK。
2)公開鍵をサーバに送信する
リモートサーバにid_rsa.pubを送っておく
[code]$ scp ~/.ssh/id_rsa.pub root@xxx.xxx.xxx.xxx:/tmp[/code]
3)rootでサーバにログインしてsshdの設定を変更する
[code]# vi /etc/ssh/sshd_config[/code]
以下の3行を修正
port 10022
PermitEmptyPasswords no
PasswordAuthentication no
4)ssh用アカウント「remoteuser」を作成して公開鍵を登録する
[code] # adduser remoteuser
# passwd remoteuser ←パスワード設定する
# su remoteuser ←ユーザを変更する
$ cd ~
$ mkdir .ssh
$ cat /tmp/id_rsa.pub > .ssh/authorized_keys
$ chmod 0600 .ssh/authorized_keys
$ chmod 0700 .ssh
$ exit[/code]
5)iptablesを修正してsshdを再起動する
[code]# vi /etc/sysconfig/iptables[/code]
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 10022 -j ACCEPT 行追加
[code] # service iptables restart
# service sshd restart[/code]
6)クライアントからsshでアクセスして確認
[code]$ ssh -p 10022 remoteuser@xxx.xxx.xxx.xxx[/code]
うまくいかない時は -vを付けて確認
[code]$ ssh -v -p 10022 remoteuser@xxx.xxx.xxx.xxx[/code]
CentOS5では以下の行はコメントアウトのままで問題ないので外さなくてOK。
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
no comment untill now