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

  • ---

    LINEで送る
  • -

    ブックマーク
  • -

    pocket
  • -

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

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

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

シェルのコマンドを使う

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

ssh-keygenはLinux系OSやMacOSに標準で入っているので、Windows以外はssh-keygenコマンドが使えます。

またWindowsでも、GitをインストールするときにGit bashプロンプトをインストールすればssh-keygenコマンドが使えます。

SSHキーを作成する人でGitをインストールしない人は少ないでしょう。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キーの名前の入力を求められます。

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

デフォルト

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

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

Enter passphrase (empty for no passphrase):

パスフレーズはパスワードのことです。SSH接続でつかうパスワードを入力します。

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

キーを複数人で共有する、複数の場所で使いまわすときはパスワードが必要です。

しかし、キーを使いまわすこと自体、セキュリティ上問題があるので、このような使い方はあまりしません。

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

とくに、プログラムで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¥id_rsa

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
この記事を気に入ったらぜひシェアも!!