ホストベース認証(RSA 公開鍵認証)による ssh 接続
1. 【クライアント側】秘密鍵と公開鍵を作成する
ログインユーザーが「/home/{ユーザー名}」ディレクトリにいることを確認します。
$ pwd
鍵タイプは「RSA(素因数分解の困難性を用いた暗号化)」 、鍵長は「2048 ビット」として生成します。
$ ssh-keygen -t rsa -b 2048
/home/{ユーザー名} ディレクトリに「.ssh」ディレクトリが自動的に生成され、その中に下の 2 ファイルが生成されます。
2. 【クライアント側】公開鍵を Ubuntu Server(ssh 接続先)にアップロードする
scp コマンドを用いて「id_rsa.pub(公開鍵)」を Ubuntu Server(ssh 接続先)にアップロードします。
$ scp id_rsa.pub {ユーザー名}@xxx.xxx.xxx.xxx:~/.
3. 【Ubuntu Server 側】アップロードされた id_rsa.pub(公開鍵)を適切な位置に配置する
(※ /home/{ユーザー名}/ に id_rsa.pub(公開鍵)があるはずです。)
/home/{ユーザー名}/.ssh/ となるように「.ssh」ディレクトリを生成して、そのディレクトリ内に「authorized_keys」ファイルを作成します。
$ mkdir .ssh
$ touch .ssh/authorized_keys
次に、authorized_keys ファイルに id_rsa.pub(公開鍵)の内容を書き込みます。
$ cat id_rsa.pub >> .ssh/authorized_keys
4. 【Ubuntu Server 側】Ubuntu Server(ssh 接続先)の ssh 設定ファイルを変更する
ssh 接続の設定ファイルは /etc/ssh/sshd_config であるので、このファイルを変更します。
#PublicAuthentication yes ↓ PublicAuthentication yes // 公開鍵認証の許可
#AuthorizedKeyFile .ssh/authorized_keys .ssh/authorized_keys2 ↓ AuthorizedKeyFile .ssh/authorized_keys .ssh/authorized_keys2 // 公開鍵のパス
#PasswordAuthentication yes ↓ PasswordAuthentication no // パスワード認証を拒否
変更が完了したら、sshd を再起動して変更を反映します。
$ systemctl restart ssh