Help us understand the problem. What is going on with this article?

JetBrains製品でSSH接続時に秘密鍵が利用できない場合の一時対処法

この記事はmacOS 10.14(Mojave)以上、Xcode 10.1、PhpStorm 2018.3.3を利用した環境で書いています。

(JetBrains製品の2019.2以降でこの問題は解決されています。(2019年10月4日更新))

はじめましての投稿です、こんにちは。
最近MacBook Proを買い換えてウキウキしながら開発したりしてます。

新しいPCは新しい環境に全部リセットしてイチから環境構築しようと思い、新規にインストールしたり、色々設定し直したりしていたところ、掲題の問題に当たったので共有します。

何が起きたか

手元の環境でssh-keygenで生成した秘密鍵が、PhpStorm(2018.3.3)上では鍵のフォーマットが正しく無いと言われて使用できず、IDE上から開発環境へ接続できなくなりました。
現象発生時のSFTP接続設定画面

結論

先に結論を書くと、接続に使用するキーペア生成時に-m PEMオプションを指定して生成し、そのキーペアを使用する。

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

何故できなかったのか

OpenSSH 7.8以降で、鍵ファイルを生成する際、デフォルトでOpenSSH形式の鍵ファイルが生成されるようになったようです。

【OpenSSH 7.8】秘密鍵を生成する形式が変更になった件について | DevelopersIO

どういうことか

これまで、ssh-keygenコマンドで公開鍵/秘密鍵を生成すする場合、デフォルトはPEMフォーマットで出力されていました。
鍵ファイルの見た目としては下記の様になります。

~/.ssh/id_rsa.pem
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----

これが、

~/.ssh/id_rsa
-----BEGIN OPENSSH PRIVATE KEY-----
...
-----END OPENSSH PRIVATE KEY-----

というフォーマットになっており、このフォーマットには掲題製品は現時点(2019/01/28 現在)では未対応のようで、正しく認識されないようです。

この問題については既にIssuesにも上がっていて、今後対応される可能性もあります。
Support OpenSSH format private keys : PY-33521

今後のアップデートで対応されることを願います:)
2019.2.3 現在ではこの問題は対応されました。(2019年10月4日現在)

問題を確認した環境

私が今回の問題に当たったときの環境は macOS 10.14 (Mojave)Xcode 10.1 を利用していました。
Xcode 10.1のCommand Line ToolsではOpenSSH 7.9となっており、キーペア生成時にオプションを指定せずデフォルトで生成すると、この問題に当たりました。

% ssh -V
OpenSSH_7.9p1, LibreSSL 2.7.3

謝辞

この問題に当たってた所、Twitter上@yusuke さん上記Issuesを教えていただきました。ありがとうございました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした