web-dev-qa-db-ja.com

sshキーパスフレーズはWindowsでは機能しますがLinuxでは機能しません

私はgitでプロジェクトに取り組んでいます。 Windowsでは、私はgit拡張機能を使用してこのプロジェクトを管理し、パブリックリポジトリにアクセスして.ppkキーを提供しています。私はそれをgit拡張にロードし、彼らが私に与えたパスフレーズを使ってそれは動作します。

次に、Linux(ubuntu-32bit)仮想マシンを設定し、このマシンからリポジトリにもアクセスしたいと思います。

このサイトで見た別のスレッドから、リポジトリのクローンを作成するために次のコマンドを使用します。

ssh-agent bash -c 'ssh-add /home/myHome/mykey.ppk; git clone git@serveraddress:project.git'

次に、シェルはパスフレーズを挿入するように指示します

Enter passphrase for /home/myHome/mykey.ppk:

しかし、それを挿入すると、それは悪いパスフレーズだとわかります。何度も確認しましたが、Windowsで使用しているのと同じパスフレーズを使用しているはずです。では、Linuxでキーを正しく使用するにはどうすればよいですか?

返信ありがとうございます。

31
Jepessen

Linux SSHクライアント(通常はOpenSSH)は、Windows SSHクライアントPuTTYで使用されるPPK形式を読み取ることができません。最初に、与えられた「PPK」キーをOpenSSHキーに変換する必要があります。 Linuxに「PuTTY」をインストールし、puttygenコマンドラインツールを使用します。

$ Sudo aptitude install PuTTY
$ mkdir -p ~/.ssh
$ puttygen ~/mykey.ppk -o ~/.ssh/id_rsa -O private-openssh

パスフレーズを入力すると、OpenSSH互換のキーが標準の場所で取得されます~/.ssh/id_rsa。その後、ssh-add(引数なし!)を使用して、このキーをSSHエージェントに追加します。

または、WindowsでPuTTYによって提供されるPUTTYgenプログラムを使用することもできます。

60
lunaryorn