1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

秘密鍵をCircleCIに登録できない原因はパスフレーズだった

1
Posted at

やりたいこと

CircleCIに秘密鍵を登録したい。
CircleCIで$ git pushしたら自動デプロイも走るようにしたく、そのためにSSH鍵を登録する必要があった。

結局どうやって解決したのか?

秘密鍵のパスフレーズ(暗号化するための記述)があるのが原因だった。
秘密鍵のパスフレーズをなしに変更したら解決した。

CircleCIの公式ドキュメントを読んで、

  • パスフレーズありの秘密鍵はCircleCIに登録できない。
  • パスフレーズなしの秘密鍵はCircleCIに登録できる。

ということがわかったので、パスフレーズなしの秘密鍵を作成した。

秘密鍵のパスフレーズとは?何のためにあるの?

秘密鍵を暗号化するもの。らしい。
しかし、なぜ暗号化する必要があるんだ?何のために暗号化するんだ?

teratailに全く同じ質問をした人がいて、回答が載っていた。
https://teratail.com/questions/76995

パスフレーズを設定していると、自分のパソコン(ローカル)がウイルスに感染したときに被害を防止できる場合があるという。
あなたのパソコンがウィルスに感染したときに秘密鍵にパスフレーズを設定していると被害を防止できる場合があります。

この投稿を見て知ったのだが、秘密鍵を知られてしまうと、パソコンのデータ全部とられたり、GitHub上のデータが全部ウイルスに感染してしまう可能性があるらしい。

そんな恐ろしいことになるんですね。
少しでもそのリスクを下げられるなら、やっておいた方がいいということですね。

パスフレーズなんていつ作ったっけ?

$ cd .ssh
$ ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxxx/.ssh/id_rsa): (リターン)

Enter passphrase (empty for no passphrase): (パスフレーズを入力してリターン)
Enter same passphrase again: (パスフレーズを入力してリターン)
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
    ここで生成してたわ!
    何も押さずENTERで自動生成してたわ!

Your identification has been saved in /Users/xxxx/.ssh/id_rsa.
Your public key has been saved in /Users/xxxx/.ssh/id_rsa.pub.
The key fingerprint is:
93:b3:41:fe:3a:cb:ba:f3:6b:99:fe:6f:d4:21:dd:fb xxxx@local
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|        .    . . |
|       o .  . o .|
|        S    o ..|
|         *  . .. |
|        .o..    .|
|      ..=.  .   E|
|      oBB=.o.    |
+-----------------+

パスフレーズを解除するやり方

調べてみたら、「なくす」というより「解除する」という方が正しいようだ。
「openssl」=「sslのパスフレーズを解除させる」という感じか?

openssl rsa -in パスあり秘密鍵 -out パスなし秘密鍵

例えば自分の場合だと
openssl rsa -in  pfcmaster7118_key_rsa -out pfcmaster7118_second_key_rsa

pfcmaster7118_key_rsaだとCircleCIに登録できなかったけど、pfcmaster7118_second_key_rsaは登録できた。

ここが秘密鍵の文字列だけだったら、パスフレーズがなしになっているということです。

pfcmaster7118_second_key_rsa
-----BEGIN RSA PRIVATE KEY-----
(秘密鍵の文字列)
-----END RSA PRIVATE KEY-----

ちょっとわかりにくいかもしれませんが、パスフレーズがありの場合は、秘密鍵の文字列の上に、2行記述があります。それがパスフレーズです。

pfcmaster7118_second_key_rsa
-----BEGIN RSA PRIVATE KEY-----
(パスフレーズがある場合は、ここに2行書いてあります)

(秘密鍵の文字列)
-----END RSA PRIVATE KEY-----

参考記事

SSLの秘密鍵ってどんなデータですか?またパスフレーズを解除するにはどうすればいいのでしょうか?

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?