サーバー間のSSH接続を鍵交換(公開鍵・秘密鍵)で行う

ssh_server_top

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

パスワードなしでサーバー間のSSH接続を行う

サーバー間を横断したいときに鍵交換を行います。昔であれば「ユーザー名」と「パスワード」でサーバーにログインしていましたが、現在ではセキュリティを担保するために鍵認証を行う方が一般的です。

サーバーを横断する作業としては

  • 作業用サーバーとgitサーバーの接続
  • サーバー間のファイル転送(交換)

などの用途で使用するのが多いのではないでしょうか。

 

鍵交換の設定

設定ファイルの格納先フォルダの確認

まずはSSH接続を行うときに必要となる設定ファイルが格納されるフォルダ「/home/(ユーザ名)/.ssh」の有無を確認します。

もしフォルダがないときは

mkdir .ssh

コマンドで事前にフォルダを作成します。

 

公開鍵と秘密鍵の作成

次にSSH接続を行うユーザーで

ssh-keygen

コマンドを実行して公開鍵と秘密鍵を作成します。

hogehoge@hostname:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hogehoge/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/hogehoge/.ssh/id_rsa.
Your public key has been saved in /home/hogehoge/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:8LtcMylCLKbuDh2QkVqQe527rGstYaVEs1aHsfDuvz8 hogehoge@hostname
The key's randomart image is:
+---[RSA 2048]----+
|      . .. ..o.  |
|       o  o .. o |
|      o    o.+= o|
|       =  + .+o+.|
|..    + S ..  *  |
|o. o . + . + + . |
| .=   * . o . .  |
|o. +.E + .       |
| +**=.o o        |
+----[SHA256]-----+

 

作成した公開鍵「id_rsa.pub」を接続先のサーバーにある「/home/(ユーザ名)/.ssh/authorized_keys」に追記。あとは「ssh (ユーザ名)@(ホスト名[ドメイン名])」でサーバーに接続することが確認できれば設定完了です。

ファイル名 種類 説明
id_rsa.pub 公開鍵 接続先のサーバーにある「authorized_keys」に追記するもの
id_rsa 秘密鍵 公開鍵「id_rsa.pub」の対になるファイル
hogehoge@hostname:~/.ssh$ ls -la
total 20
drwx------ 2 hogehoge hogehoge 4096 Dec  2 19:26 .
drwxr-xr-x 8 hogehoge hogehoge 4096 Dec  1 14:30 ..
-rw------- 1 hogehoge hogehoge 1955 Nov 29 14:18 authorized_keys
-rw------- 1 hogehoge hogehoge 1675 Dec  2 19:26 id_rsa
-rw-r--r-- 1 hogehoge hogehoge  407 Dec  2 19:26 id_rsa.pub
hogehoge@hostname:~/.ssh$ 
hogehoge@hostname:~/.ssh$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCbFFxi+tZjT0KqczTgYBBDLaqoeCRHmeN7bvw0cuKXLIrrX0YS+VbFak5uT6VGY0p2iSMs4RiYgX50aYiNoG13e8xbMocmEvXXqPtDb/62tF6qpkhFHimi5edKSiLyf1wW367bbRjrEYk3KY3doUnhAY93wfFDKSC4jAL7Kev/Xjv4Wux7LVbasAN25GVHw2uQNc6dd1BiUJccI7QCzLBvtIOaZgnEAfKPFTM483HwLZxHVs5EsXT3oHmOWoFMMJ7SRYTBfToKifner+8MiJwYt0I+H33o++xf8TuH7o44AUInNHEhE1SeoDEW7FZmD5Uw87aZT9XcMm/GSn+K++zx hogehoge@hostname