implの藤谷です。
opensshのキーペアを利用して、ファイルをssh接続で安全に管理する方法を解説します。
openssh用ライブラリのインストール
キーペアの生成にはopenssh-server
を使用します。
$ yum install openssh-server
yumにインストールされているか確認
$ yum list installed | grep openssh
openssh.x86_64 8.7p1-33.el9 @anaconda
openssh-server.x86_64 8.7p1-33.el9 @anaconda
キーペア生成とファイル操作まで
keygenでのキーペア生成
ssh-keygenコマンドを使用してキーペアを生成します。
キー名はranble-key
にしておきます。
- -t
生成するキーの種類を指定。今回はras方式 - -b
キーのビット長を指定 - -f
キー名を指定
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/ranble-key
Generating public/private rsa key pair.
SHA256:dsMedsQeTnRHITvAW4+Sd8to08iXzc06iRsaPAhBhus
The key's randomart image is:
+---[RSA 4096]----+
| .o .....o+|
| .o +.oo. |
| .. Ooo |
| . . . O +.o |
| . . S * B *o=|
| E o * + * *=|
| . = o.oo |
| +..+ |
| . .. . |
+----[SHA256]-----+
~/.ssh/ にキーペアが作成されました。
公開鍵暗号方式の実装の為、秘密鍵と公開鍵のキーペアになっています。
- ranble-key(秘密鍵)
データの暗号化と復号、デジタル署名等に使用されます - ranble-key.pub(公開鍵)
公開可能で、クライアントからの接続要求に対応する秘密鍵が所有者のものであることの検証に使用されます。
$ cd ~/.ssh
$ ls
ranble-key ranble-key.pub
$ cat ranble-key
-----BEGIN OPENSSH PRIVATE KEY-----
// キーの値
-----END OPENSSH PRIVATE KEY-----
$ cat ranble-key
ssh-rsa
// キーの値
txtファイル作成
検証用にhello.txt
ファイルを作成します。
中身はhello worldと書いているだけです。
$ vim hello.txt
// テキストを追記
$ ls
hello.txt
$ cat hello.txt
hello world
ファイル暗号化
hello.txtの暗号化を行います。
opensslコマンドを使用し、暗号化対象のファイルと、暗号化後のファイル名を指定しています。
$ openssl aes-256-cbc -in hello.txt -out encrypted.txt
$ ls
hello.txt encrypted.txt
暗号化後のファイルを確認します。
catコマンドで見てみると暗号化されていることがわかります.
$ cat encrypted.txt
��lted__�
��Gl�@P����!�d��
ファイル復号
暗号化されたencrypted.txtを復号します。
encrypted.txtがデコードされた状態のdecrypted.txtを作成します。
$ openssl aes-256-cbc -in encrypted.txt -out decrypted.txt
$ ls
hello.txt encrypted.txt decrypted.txt
$ cat decrypted.txt
hello world
暗号化前と同じ状態に復号されています。
以上の手順で、ファイルを暗号化したり復号したりで安全に管理することができます。
終わりに
今回は以上になります。
ここまで読んでいただき、ありがとうございました。