メインコンテンツへスキップ
  1. ブログ/

【初心者向け解説】OpenSSHで秘密鍵/公開鍵を作成する方法

·
Linux SSH OpenSSH
目次

初めに
#

安全なリモート接続を実現するために欠かせないのが「SSH鍵認証」です。

その中でも広く利用されている実装が「OpenSSH」です。

OpenSSHは、オープンソース(OSS)で開発されており、Linux・UNIX系システムを中心に、幅広い環境で採用されています。

以下はOpenSSHの移植版(ポータブル向け)のミラーリポジトリとなっております。

openssh/openssh-portable

Portable OpenSSH

C
3330
1873

そこで今回は、OpenSSHを使用してSSH秘密鍵と公開鍵を作成する基本的な手順について、初心者にもわかりやすく解説します。

ssh-keygenコマンド
#

Linux環境では、OpenSSHのコマンドラインツールssh-keygenを使用する事で簡単にSSH鍵ペア(秘密鍵公開鍵)を作成できます。

基本的なコマンド構文は以下のとおりです。

ssh-keygen -t 暗号化タイプ -b ビット数 -m 鍵ファイルの形式

ssh-keygenコマンドで作成する鍵には、以下の暗号化タイプを指定することができます。

タイプ 説明
rsa もっとも広く使用される公開鍵暗号方式。
dsa 主にデジタル署名専用の方式。※非推奨
ecdsa セキュリティ性と速度のバランスが良い楕円曲線暗号方式。
ed25519 高速かつ高いセキュリティを備えた楕円曲線暗号方式。

現在は特別な理由がなければ ed25519 または高ビット数の rsa を選択するのが一般的となります。

鍵のビット数(長さ)は、セキュリティレベルに直結する値となります。

以下はよく利用されるビット数となります。

ビット数 説明
2048ビット 一般的な用途に広く使われている標準的な強度。
3072ビット より高いセキュリティを求める場合に推奨。
4096ビット 最高クラスの安全性が求められる場合に使用。

ssh-keygenコマンドで作成する鍵には、以下のファイルの形式を指定することができます。

形式 説明
PEM OpenSSHが標準で使用する形式。多くのツールで互換性互換性がある。
RFC4716 主に公開鍵を交換するために使われる標準フォーマット。
PKCS8 秘密鍵を標準化された形式で保存するための仕様。

鍵ペアを作成する
#

下記はssh-keygenを使用した作成例となります。

今回は鍵のタイプは「rsa」としビット数は「3072ビット」、ファイルの形式を「PEM」とします。

ssh-keygen -t rsa -b 3072 -m PEM

上記のコマンドを実行すると、対話形式でSSH鍵ペアの作成プロセスが始まります。

対話モードの流れはいかとなっております。

ステップ 内容 詳細
1 保存先ファイルの指定 鍵ファイルの保存場所を尋ねられる。デフォルトは /root/.ssh/id_rsa
2 パスフレーズの入力 秘密鍵に設定するパスフレーズを入力(空Enterでなしも可)。
3 パスフレーズの再入力 確認のため、同じパスフレーズを再度入力。
4 鍵ペアの生成完了メッセージ 秘密鍵と公開鍵が作成された旨が表示される。
5 フィンガープリントの表示 鍵の一意性を確認するためのSHA256形式フィンガープリントが表示される。
6 Randomartイメージの表示 視覚的な識別用としてランダムアートパターンが出力される。

下記は全てデフォルト設定で作成を行った例となります。

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
.our identification has been saved in
.pub.public key has been saved in
The key fingerprint is:
SHA256:ZL33KnCzyhUavLTSAqUWQK1NYdC9V4G4d1ERn5b9cls root@servername
The key's randomart image is:
+---[RSA 3072]----+
| .++oo . ..o+o   |
|   o+ o ..o  . + |
|   +. .oo...  = .|
|  . .+o+o .. .  .|
|    +  oS.o . . E|
|   . . o.=oo . oo|
|      o =o.o  .. |
|       + .o  .   |
|        o. ..    |
+----[SHA256]-----+

デフォルト設定では、作成された鍵ペアは以下のディレクトリに保存されます。

/ユーザーディレクトリ/.ssh/id_rsa

次に、作成した鍵ペアをSSHで利用できるように、いくつかの操作を行います。

まずは、ユーザーの .ssh ディレクトリに移動します。

cd ~/.ssh

次に、公開鍵(id_rsa.pub)を authorized_keys という名前にリネームします。

これにより、SSHが公開鍵を認識できるようになります。

mv id_rsa.pub authorized_keys

次に、作成した秘密鍵(id_rsa)をローカルにダウンロードします。

その後、サーバーに保存されている秘密鍵は削除します。

rm -f id_rsa

これで、SSH接続に必要な鍵ペアを準備する準備が整いました。

関連記事

WHOISサーバーを指定してドメイン情報を検索する方法
Linux コマンド ドメイン
Linuxでカーネルバージョンを確認する方法
Linux OS Kernel
postfixのメールログを調査する方法
Linux メール Postfix
LinuxでIPアドレスを確認する方法
Linux コマンド
【初心者向け解説】AlmaLinuxでOSバージョンを確認する方法
Linux コマンド
Linuxの権限(パーミッション)を数字で表示する方法
Linux Bash