SSHキーの秘密鍵・公開鍵を各OSで作る方法

  • ---

    LINEで送る
  • -

    はてなブックマーク
    ブックマーク
  • -

    pocket
  • -

    rss
他言語サイト
翻訳はみつかりませんでした
network image
イラストACの画像をもとに加工しています。

GitHubやBitbucketなどのホスティングサービスなどと安全な接続をするためにSSHキーを作ります。

その作り方を各OSごとに説明します。といってもやり方によっては全部同じにできるので、それをご紹介するのですが。

シェル(bash)のコマンドを使う

bashシェルにはssh-keygenコマンドがあります。これを使うと数秒で秘密鍵と公開鍵が作成できます。

bashはシェルとして一番利用されていてLinux系OSやMacOSに標準で入っているので、Windows以外はssh-keygenコマンドが使えます。

またWindowsでも、GitをインストールするときにGit bashプロンプトをインストールすれば基本的なbashコマンドが使えます。もちろんssh-keygenコマンドも入っています。

SSHキーを作成するような人でGitをインストールしない人は少ないでしょう。また、Windowsで基本的なLinuxコマンドを使うためにGitをインストールするというイレギュラーな使い方をしてもよいです。

ということで、今回はssh-keygenコマンドを使ってSSHキーを作成します。

ssh-keygenコマンドの使い方

まずはプロンプトでコマンドを実行します。

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/***/.ssh/id_rsa):

すると、最初に作成するSSHキーの名前の入力を求められます。デフォルトでは

ログインユーザのホームディレクトリ/.ssh/id_rsa

です。

ファイルの絶対パスを入力してEnterキーを押します。何も入力せずにEnterキーを押すとデフォルト設定になります。

次にSSHキーのパスフレーズの入力を求められます。

Enter passphrase (empty for no passphrase):

パスフレーズはパスワードのことです。SSH接続をするときに入力するパスワードを決めます。

パスワードを入力したらEnterキーを押します。パスワードがいらない場合はそのままEnterキーを押します。

公開鍵を複数人で共有する場合はパスワードが必要です。しかし、SSHキーの公開鍵を使いまわすということ自体にセキュリティ上問題があるので、そのような使い方はあまりしません。

公開鍵を1つのことにしか使わないのであれば、パスワードは不要です。

とくに、プログラムでSSHの自動接続をする場合やGithubやBitbucketなどのホスティングサービスで、アクセスするたびにパスワード入力を求められるのもうっとうしいです。

ぼくはどちらかと言えばパスフレーズ不要派です。(あくまでケースバイケースです。)

Enter same passphrase again:

パスワードの確認を求められます。(パスワードが不要な場合はそのままEnterキーを押す)

Your identification has been saved in /home/***/***/id_rsa.
Your public key has been saved in /home/***/***/id_rsa.pub.
The key fingerprint is:
SHA256:wuf3jKWtG04vOZHFfGM97VOKfR+Ov51Gz3r6HCx9LGw kusanagi@kusanagi71
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|                 |
|           o   ..|
|     .      + +.+|
|      o S  o = +o|
|       +  o ..==o|
|        . +o..E*B|
|         ++X o.=X|
|          *== =O=|
+----[SHA256]-----+

こんな感じの結果が表示されれば秘密鍵・公開鍵のペアがひとつ作られます。

ls -ltr
-rw-r--r-- 1 *** ***       401  2月  8 16:01 id_rsa.pub
-rw------- 1 *** ***      1679  2月  8 16:01 id_rsa

.pubがついているものが公開鍵、ついていないものが秘密鍵です。

秘密鍵は自分自身で保管して外には絶対に公開しません。外に出すのは公開鍵だけです。

Windowsでssh-keygenコマンドを使う

Windowsでssh-keygenコマンドを使う一番の簡単な方法はGitをインストールすることです。だいたいSSHキーを作成する場合はGitが必要なことが多いのでついでにやってしまった方がいいです。

まずは、GitをWindowsにインストールします。

すると、右クリックのコンテキストメニューに『Git Bash Here』が追加されます。これを開くと、bashコマンドが使えるコマンドプロンプトが起動します。ここでssh-keygenコマンドが実行できます。

C:\Program Files\Git\usr\binにssh-keygen.exeがあるので、これを使うこともできます。

ちなみに、WindowsでのSSHキーのデフォルトの作成ファイルは、ユーザフォルダ¥.sshフォルダになります。

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/***/.ssh/id_rsa):

ssh-keygenはすべてのオプションを省略しています。じっさいはこんな感じでオプションを使います。

ssh-keygen -t rsa -b 2048 -C "sample@sample.com"
-t鍵タイプ。 デフォルト: rsa
-b鍵の長さ。 デフォルト: 2048byte
長い方が暗号の強度が強い。ただし2048が弱いというわけではない。
-Cコメント。 デフォルト: ユーザ名+@+マシン名(PC名)
公開鍵の一番最後に追加される。メールアドレスを入力することが多い。

OpenSSHとPutty

ここまで説明してきたものはOpenSSHという規格です。LinuxOSで採用されています。それに対してPutty形式もあります。

Puttyはもともとリモート操作クライアントのアプリケーションのことで、もちろんssh通信も対応しています。

Puttyには.ppkの拡張子の秘密鍵があります。OpenSSHと互換性がありますが、.ppkファイルはすべてのssh接続で使えるわけではありません。

たとえばGitHubやBitbucketのSSH接続ではOpenSSHを使います。しかし、リモート操作のアプリケーションなどでは、.ppkファイルを使うものもあります。

PuttyもそうですがWinSCPやTeraTermなどもそうです。.ppkファイルの作成方法は別の機会に行います。

まとめ

今回は、ssh-keygenコマンドを使ってSSHキーを作成する方法をご紹介しました。

Windowsには、PuTTYgenというキー作成アプリケーションがあります。これを使った方法を紹介したものもたくさんあります。

でもぼくは、OSに関係なく共通で使える方法があるならそれが一番いいと思っています。同じ目的のためにいくつもの方法を覚えるのが面倒だからです。

(たくさん覚えられないという能力も関係していますが)

たくさんのことを覚えるのが苦手という人におすすめの方法です。

SNSでも記事を配信しています。
コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

top
この記事を気に入ったらぜひシェアも!!