【ssh】公開鍵認証 設定~接続まで
環境
今回は以下の環境でのメモ。
◆サーバー
CentOS Linux release 7.4.1708
⇒既にインストール済みの「OpenSSH」で設定。
◆クライアント
Windows 7 Professional
⇒「RLogin」を使用して接続。
鍵の作成
①ssh-keygen
の実行
サーバー側で以下のコマンドを実行し、鍵を作成。
※ログイン者は、sshで接続する際のユーザとする。(今回は、「hoge」とする)
$ ssh-keygen -t rsa -b 4096
-t:鍵の種類を指定します。 rsa を指定すると、SSHプロトコルバージョン2のRSA鍵が作成されます。公開鍵暗号方式は主にRSAが使用されています。
-b:鍵のsize(bit)を指定します。2048bit以上なら問題ない強度ですが、より強固にする為に今回は、4096bitを指定します。
②パスフレーズの設定
秘密鍵に設定するパスフレーズの入力を求められるので、2回入力します。
このパスフレーズは秘密鍵の使用時(SSHログイン時)に必要であり、接続先の端末には送信されません。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
③authorized_keys
を作成
上記までを実行すると、秘密鍵と公開鍵が作成される。
# id_rsa.pub`を`authorized_keys` にリネーム。
$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
# 所有者以外のアクセスを許可しないよう設定。
$ chmod 600 ~/.ssh/authorized_keys
接続
~/.ssh/id_rsaをどうにかしてクライアントへ転送します。
※私は「RLogin」で、事前にパスワード認証で接続させ、SFTPでファイル転送しました。こうすれば、パスワード認証を禁止にした際の確認用にもなる。
RLoginの設定
「RLogin」を起動し、以下の設定後に接続。
※「RLogin」を持っていない人は、以下からダウンロード。 http://nanno.dip.jp/softlib/program/rlogin_x64.zip
- プロトコル:ssh
- ホスト名:サーバーのIPアドレス
- TCPポート:ssh(22)
- ログインユーザ名:hoge
- パスフレーズ:②で入力したもの
- SSH認証鍵:ファイルパスをid_rsaに設定
- デフォルト文字セット:UTF-8
コマンドが打てる状態になれば、接続成功です。
注意
今回は「ファイアーウォール」の設定を省きましたが、
ポート:22のデフォルトは、許可になっていると思います。
接続がうまくいかない場合は、「ファイアーウォール」を疑ってください。