SSH接続で鍵認証を利用する方法

SSH接続は別のPCにネットワーク経由で接続してログインすることで手元のPCのように操作できる仕組みです。鍵認証を利用することで第三者に知られたくない秘密の情報を相手に安全に送ることができます。ここではSSH接続で鍵認証を利用する方法について解説します。

ssh-keygenコマンドを使用することで、SSHで利用する認証用の鍵を生成できます。SSHプロトコルバージョン1のRSA鍵、SSHプロトコルバーション2のRSA鍵、DSA鍵をサポートしています。

種別 接続先 ユーザー名
クライアント client.com alice
サーバー server.com bob

クライアント

01: RSA暗号の鍵を生成

秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が生成されます。パスフレーズを要求される。空にするとパスフレーズ無しで生成できます。

bash


$ ssh-keygen -t rsa
$ ls ~/.ssh
id_rsa  id_rsa.pub

種類 オプション ファイル名
SSHプロトコルバージョン1-RSA -t rsa1 id_rsa
SSHプロトコルバージョン2-RSA(デフォルト) -t ras id_rsa
SSHプロトコルバージョン2-DSA -t dsa id_dsa
生成場所
生成場所のデフォルトは~/.ssh.で、-f オプションを付けると生成されるディレクトリとファイル名を指定できる。

02: サーバーへ公開鍵をコピー

bash


$ scp <ファイル名> bob@server.com:/home/bob/.ssh

サーバー

authorized_keysファイルに統合

bash


$ chmod 600 id_rsa.pub
$ mv id_rsa.pub authorized_keys
$ chmod 600 authorized_keys
$ chmod 700 .ssh

# authorized_keysファイルが既に存在する場合
$ cat id_rsa.pub >> authorized_keys
$ rm id_rsa.pub

クライアントからサーバーへ接続確認

bash


$ ssh bob@server.com