公開鍵認証方式でsshを利用する

■公開鍵認証方式で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

, ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...