今回は、SSH接続を公開鍵認証を使用して行ってみたいと思います。
いろいろなサーバに接続しだすとSSH接続やSCP、RSYNCの際に毎回パスワードを入力するのがめんどくさくなるので、そういう時に鍵登録をしておくことでノンパスで接続できて快適になります。
ちなみに下の記事では、rsyncについて調べたことをまとめているのでよければ参考にしてください。

【ファイル同期に便利】rsyncのオプションと使い方
本日は、いろんなバックアップ方式が取れて便利なコマンド"rsync"についてわかったことを共有しようと思います。
rsyncとは
rsyncとは、ファイルやディレクトリを同期(コピー)する際に使用するコマンドです。主にデータのバックアッ...
検証環境
用意するサーバは以下の二役です。両方OSはCentOS8.2を使用しています。
-
ホスト(踏み台などのメインで使用するサーバ)
-
サーバ(実際にホストから接続を行う側)
1のホスト名をhost.local , 2のホスト名をserver.local とわかりやすくしておきます。
ちなみに、CentOS8の場合だとホスト名は”hostnamectl set-hostname ${ホスト名}“ & “reboot“ で変更できます。
公開鍵認証設定
早速公開鍵認証設定をしていきましょう。
鍵の作成
まずは、host.local で鍵を作成します。下のコマンドをコピペしてください。
ssh-keygen -t rsa -b 4096
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
[root@host ~]# ssh-keygen -t rsa -b 4096 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:5ghwg4WTbc2TPRsSS87QG41lQjgW89Q2eGnO5ria6GM root@host.local The key's randomart image is: +---[RSA 4096]----+ | +=B*Xo. | | +o*O@+% | | o+o.=@ = | | o .. = | | . +S | | ..+. | | ... | | E. .. | | oo.o. | +----[SHA256]-----+ |
Enter file in which to save the keyは、特に鍵をおく場所決める場所(デフォルトは/root/.ssh/id_rsa)
Enter passphraseは、パスワードのようなログイン時に使用するものです。
なので、必要がない場合はEnterを押して進めてもらえれば上のような表示になると思います。
鍵の確認
では、出来上がった鍵を確認してみましょう。
1 2 3 4 |
[root@host ~]# ls -l /root/.ssh/ 合計 8 -rw-------. 1 root root 3381 7月 4 17:46 id_rsa -rw-r--r--. 1 root root 741 7月 4 17:46 id_rsa.pub |
id_rsaが秘密鍵、id_rsa.pubが公開鍵となっています。今回使うのは後者のid_rsa.pubです。
鍵を登録する準備+登録
では、host.local 作成した鍵をserver.local へ送信する前にserver.local に/root/.sshディレクトリがあるかを確認しましょう。そして、ない場合は下のコマンドを使用して作成してください。
mkdir -m 700 /root/.ssh
1 2 3 4 5 6 7 8 9 10 11 12 |
[root@server ~]# ls -al /root/ 合計 28 dr-xr-x---. 2 root root 135 7月 4 17:38 . dr-xr-xr-x. 17 root root 224 7月 4 17:33 .. -rw-------. 1 root root 21 7月 4 17:38 .bash_history -rw-r--r--. 1 root root 18 5月 12 2019 .bash_logout -rw-r--r--. 1 root root 176 5月 12 2019 .bash_profile -rw-r--r--. 1 root root 176 5月 1では、host.local 作成した鍵をserver.local へ送信する前にserver.local に/root/.sshディレクトリがあるかを確認しましょう。そして、ない場合は作成してください。2 2019 .bashrc -rw-r--r--. 1 root root 100 5月 12 2019 .cshrc -rw-r--r--. 1 root root 129 5月 12 2019 .tcshrc -rw-------. 1 root root 1169 7月 4 17:37 anaconda-ks.cfg [root@server ~]# mkdir -m 700 /root/.ssh |
.sshディレクトリがあることが確認できたら、host.local からserver.local へ公開鍵を送信しましょう。
ちなみにhost.local のIPアドレスは192.168.3.18
server.local のIPアドレスは192.168.3.19です。
scpコマンドで送信します。
scp /root/.ssh/id_rsa.pub root@192.168.3.19:/root/.ssh/authorized_keys
上のコマンドでは、id_rsa.pubをauthorized_keysという名前でserver.localに保存しています。
確認
というわけで実際にserver.localにSSH接続してみましょう。
1 2 3 |
# ssh 192.168.3.19 Last login: Sat Jul 4 17:46:00 2020 from 192.168.3.15 [root@server ~]# lang="default" decode="true" ][root@host ~]# ssh 192.168.3.19 Last login: Sat Jul 4 17:46:00 2020 from 192.168.3.15 [root@server ~]# |
はい、ノンパスでSSH接続をできるが確認できました。
これでrsyncやscpコマンドを使用した際もパスワード入力なしに使用できます。
というわけで今回は、SSH公開鍵認証の方法を共有しました。
では〜〜〜
コメント
[…] 【CentOS8で検証】SSH公開鍵認証は超簡単今回は、SSH接続を公開鍵認証を使用して行ってみたいと思います。 いろいろなサーバに接続しだすとSSH接続やSCP、RSYNCの際に毎回パスワードを入力 […]