RHEL6は、インストール直後には、rootでリモートログインできるような設定になっています。
これは非常に危険な状態なので、RHEL6 / CentOS6をインストールしたら、速攻で下記の設定を行いましょう。
# vi /etc/ssh/sshd_config
リモート端末からのrootユーザのログインを禁止する
PermitRootLogin no
SSH接続を不特定多数の端末(IPアドレス)からアクセス可能にする場合、
パスワードによるログインを拒否するようにする。
公開鍵認証を有効にする
公開鍵認証ファイルの格納先を指定する
接続するユーザを特定する
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
AllowUsers joh billy marry
ssh-keygen -t rsa -b 2048
-t 暗号化の種類を指定
dsa
rsa 一般的にはこっちを選ぶのだろうか!?
-b バイト数
1024 ちょっと前ならこれで良かったかもしれない
2048 いまなら、これくらいは必要かも
ssh-keygenの実行例
work@tiger10:~$ ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter file in which to save the key (/home/work/.ssh/id_rsa):
Created directory '/home/work/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/work/.ssh/id_rsa.
Your public key has been saved in /home/work/.ssh/id_rsa.pub.
The key fingerprint is:
fd:05:75:d1:a7:43:c2:5b:f5:39:b0:97:27:32:db:0c work@tiger10
The key's randomart image is:
+--[ RSA 2048]----+
| . ..o=|
| o.=.*|
| E*.*+|
| . .O+.o|
| S . . +. |
| . . |
| . |
| |
| |
+-----------------+
生成した公開鍵をほかのサーバに転送することにより、公開鍵認証でログインできるようになります。
ssh-copy-id -i .ssh/id_rsa.pub joh@panther
上記コマンドは、現在ログインしているアカウントの公開鍵を、pantherサーバのjohアカウントに登録転送するというものです。
このコマンドを実行すると、転送先にアカウント(この場合 joh@panther )のパスワードを聞いてきますので、正しく入力してください。
正しい接続先のアカウントのパスワードが入力され、公開鍵が先方に転送されたら、次回以降の接続は、
自分自身が公開鍵を作成したときに入力した、パスフレーズを入力するだけで、接続できるようになります。
上記コマンドを実行して作成されるファイルとその作成されるディレクトリ名を紹介します。
$HOME/.ssh
例えば、アカウント joh がssh公開鍵を作成した場合、
/home/joh/.ssh
にファイルが作成されます。
作成されるファイルとしては、下記の2つがあります。
id_rsa
id_rsa.pub
id_rsa ファイルは、秘密鍵です。
自分以外の人がアクセス出来ないようにする必要があります。
また、自分以外の人にこのファイルを公開しないようにする必要があります。
id_rsa.pub ファイルは、公開鍵です。
こちらのファイルは、SSH公開鍵認証を行いたい相手に渡すためのファイルです。
上記、ssh公開鍵の転送で転送されるファイルは、このファイルです。
また、ssh公開鍵とは直接は関係ないのですが、同じディレクトリに保存されるファイルとして
known_hosts というファイルがあります。
このファイルは、ssh経由でリモート接続を行ったホストの情報が記録されます。
sshによるリモート接続を行ったことが無い場合このファイルは作成されません。
さらに、同じディレクトリには、authorized_keys というファイルが保存されることがあります。
このファイルは、ssh公開鍵認証で接続する際に、ssh公開鍵の転送を行う/公開鍵の登録を行うと
作成されて、このファイルにssh公開鍵が保存されます。
複数のホストからssh公開鍵の登録/転送が行われると、その度に保存していきますので、
登録されている公開鍵の数だけ、公開鍵の登録を行ったホストがあるということになります。
接続先のサーバが、検証用サーバな為、DHCP自動割り当てで稼働させている
そんな場合、ある日別のIPアドレスになってしまい、下記のようなメッセージが表示され、
ログインできなくなるということがあります。
ssh login fail
wuser@pc01:~$ ssh user@192.168.1.63
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
29:80:d3:5b:94:24:0b:94:48:1c:3f:e8:c2:a9:bc:09.
Please contact your system administrator.
Add correct host key in /home/wuser/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/wuser/.ssh/known_hosts:5
remove with: ssh-keygen -f "/home/wuser/.ssh/known_hosts" -R 192.168.1.63
RSA host key for 192.168.1.63 has changed and you have requested strict checking.
Host key verification failed.
wuser@pc01:~$ ssh-keygen -f "/home/wuser/.ssh/known_hosts" -R 192.168.1.63
/home/wuser/.ssh/known_hosts updated.
Original contents retained as /home/shinox/.ssh/known_hosts.old
wuser@pc01:~$ ssh user@192.168.1.63
The authenticity of host '192.168.1.63 (192.168.1.63)' can't be established.
RSA key fingerprint is 29:80:d3:5b:94:24:0b:94:48:1c:3f:e8:c2:a9:bc:09.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.63' (RSA) to the list of known hosts.
書式:
ssh-keygen -f "/home/[user name]/.ssh/known_hosts" -R [host IP Address]
例:
$ ssh-keygen -f "/home/wuser/.ssh/known_hosts" -R 192.168.1.63