CentOS openssh

ssh認証キーを作成し、sshログイン時に秘密鍵・公開鍵にてログインできる様にする

鍵の種類

openSSHでは以下の様な種類の鍵を作成できます

  • プロトコルバージョン1のRSAキー
  • プロトコルバージョン2のRSAキー
  • プロトコルバージョン2のDSAキー

作り方はそれぞれ、

プロトコルバージョン1(RSA)

$ ssh-keygen -t rsa1

プロトコルバージョン2(RSA)

$ ssh-keygen -t rsa

プロトコルバージョン2(DSA)

$ ssh-keygen -t dsa

です

鍵の作成

今回は、プロトコルバージョン2(RSA)で鍵を作成します

鍵を作成したいユーザ(ここではfooとする)になり、以下を実行します

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/foo/.ssh/id_rsa):ここはリターンのみでOK
Enter passphrase (empty for no passphrase):ここにパスフレーズ(パスワードとは違います)を入力
Enter same passphrase again:もう一度パスフレーズを入力
Your identification has been saved in /home/foo/.ssh/id_rsa.
Your public key has been saved in /home/foo/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx foo@bar.local

$

これで、ホームディレクトリ/.ssh/下に秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が作成されます

なお、パスフレーズを指定しなければ、秘密鍵と公開鍵だけでSSHログインできるようになりますので、rsyncを使ってデータの自動バックアップ等に利用できます

注意

TTSSH(TerraTERM)の場合は、プロトコルバージョン1しかサポートしていないので、TTSSHから接続を行いたい場合は、プロトコルバージョン1(RSA)で作成しないといけません

公開鍵の配置

公開鍵を、ホームディレクトリ/.ssh/authorized_keys に追加します

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

無い場合は新規に作成する(パーミッションは600で)

$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

追加後は、id_rsa.pubは不要ですので、削除する事

秘密鍵の扱い

秘密鍵(~/.ssh/id_rsa)はクライアント側で必要なので、USB等に保存後、別端末(例えばWindows等)から接続する場合に使用します

USBに保存後は不要となるので、~/.ssh/id_rsaは必ず削除する事


Puttyによる接続

WindowsのSSH2クライアントであるPuttyから接続してみる

接続するにあたり、puttygen.exeで、秘密鍵をPutty用に変換しなければいけないみたいです

関連ページ