macOSでSSHキー(公開鍵/秘密鍵)を生成する方法

投稿者 : OSCA

[PR] 出川哲朗の充電させてもらえませんか? で登場した、あの場所へ行こう! 番組のロケ地を紹介するファンサイトはこちら。

 本稿では、macOSでユーザー自身のSSHキー(公開鍵/秘密鍵のペア)を生成する方法について解説します。

最終的に生成されるもの

 具体的な手順を解説する前に、最終的にどのようなファイルが生成されるのかを先に知っておきましょう。 生成されるファイルは次の2つです。

種類ファイル
秘密鍵/Users/ユーザー名/.ssh/id_rsa
公開鍵/Users/ユーザー名/.ssh/id_rsa.pub

 そもそもSSHキーは、公開鍵暗号方式の鍵であり、「秘密鍵」と「公開鍵」という2つの鍵でなりたちます。 秘密鍵は決して漏らしてはいけない大切な鍵である一方、公開鍵は複製して配っても良い鍵です。この2つの鍵には、とても重要な次の特徴があります。

公開鍵暗号方式の特徴

  • 秘密鍵で封をしたものは、公開鍵で開くことができる。
  • 公開鍵で封をしたものは、秘密鍵で開くことができる。

 SSHの公開鍵/秘密鍵は、ユーザー毎や用途毎に生成するのが一般的で、macOSでユーザー自身の鍵を配置する場所としては、ユーザーのホームディレクトリの .ssh ディレクトリとするのが慣習です。

生成手順

 macOS では標準でSSHの鍵ペアを生成するための ssh-keygen コマンドが利用できます。 この ssh-keygen コマンドを利用して鍵を作ります。

 まずは .ssh ディレクトリの存在を確認し、もしディレクトリが無ければ作成します。 また .ssh ディレクトリのアクセス権限は 700 である必要があります。 (秘密の鍵を置くディレクトリですので、他のユーザーが覗けては意味がありませんからね)

$ cd ~/
$ mkdir .ssh
$ chmod 700 .ssh

 鍵を設置する .ssh ディレクトリに移動し、秘密鍵(id_rsa)と公開鍵(id_rsa.pub)がまだ無いことを確認してください。

$ cd ~/.ssh
$ ls -l

 それでは ssh-keygen コマンドを利用して秘密鍵と公開鍵のペアを生成します。 コマンド実行時に「ファイルの出力先」と「パスフレーズ」を聞かれます。 「ファイルの出力先」は確認してEnterキーを、「パスフレーズ」は空でも良いためそのままEnterキーを押します。 (もちろんパスフレーズは設定してもらっても良いです、その場合は生成した鍵を利用するシーン毎に毎回パスワードを要求されます)

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/taro/.ssh/id_rsa): このままで良いのでEnterを押す
Enter passphrase (empty for no passphrase): パスフレーズ (空でも良いので、その場合Enterを押す)
Enter same passphrase again: パスフレーズ(確認用)

 鍵ペアの生成が完了したら ls コマンドを実行してみると、id_rsa と id_rsa.pub という2つのファイルが生成されたことが確認できるでしょう。

おわりに

 本稿ではmacOSでSSHキーを生成する方法について解説しました。 皆様のお仕事のお役に立てれば幸いです。

著者 : OSCA

OSCA

Java, PHP 系のWEBエンジニア。 WEBエンジニア向けコミュニティ「WEBエンジニア勉強会」を主催。
個人として何か一つでも世の中の多くの人に使ってもらえるものを作ろうと日々奮闘中。
@engineer_osca