PuTTY Key Generatorを使用して、パスフレーズ付きの4096ビットRSA-2鍵を生成しました。
.ppkとopenSSL形式の公開鍵を保存します。 PuTTY形式の公開鍵は機能しません。
いずれにせよ、私のエラーは次のとおりです。
$ ssh -T [email protected]
key_load_public: invalid format
Enter passphrase for key '/c/Users/Dan/.ssh/id_rsa':
Hi Dan! You've successfully authenticated, but GitHub does not provide Shell access.
問題は何ですか?
私はキーをロードするためにPageantを使い、ssh接続を試すためにGit Bashを使います。私はまた、GitHubにキーをロードしました。
GitHubで新しい行を追加し、新しい行を追加しないようにしました
Roland が彼らの答えで述べたように、それはssh-agent
が公開鍵のフォーマットを理解しないそしてそれでもそれでも公開鍵がローカルに使用されないであろうという警告です。
ただし、警告が表示される理由を詳しく説明して回答することもできます。それは単にPuTTY Key Generatorが 2つの異なる公開鍵フォーマット をあなたがプログラムで何をするかに依存して生成するという事実に帰着します。
注: 私の説明では、私が使用する/生成するキーファイルは、適切な拡張子を付けてid_rsa
という名前にします。さらに、コピー&ペーストの便宜上、キーの親フォルダは~/.ssh/
と見なされます。必要に応じてこれらの詳細を調整してください。
[Save public key]ボタンを使用してPuTTY Key Generatorを使用して save keyを使用すると、 RFC 4716で定義された形式で保存されます。 .
例:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "github-example-key"
AAAAB3NzaC1yc2EAAAABJQAAAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYF
i2fSBrsGcmqeb5EwgnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcp
pY0fhRSGtWL5fT8DGm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3
oMrongEjGw7sDP48ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEA
ip3mL20+qHNsHfW8hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9
tBjh7cOyuU/c4M4D6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElw==
---- END SSH2 PUBLIC KEY ----
一般的な考えに反して、この形式はジェネレータによって保存されません。ただし、それは生成され、「OpenSSHのauthorized_keysファイルに貼り付けるための公開鍵」というタイトルのテキストボックスに表示されます。ファイルとして保存するには、テキストボックスから手動でコピーして新しいテキストファイルに貼り付ける必要があります。
上記のキーの場合、これは次のようになります。
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYFi2fSBrsGcmqeb5EwgnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcppY0fhRSGtWL5fT8DGm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3oMrongEjGw7sDP48ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEAip3mL20+qHNsHfW8hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9tBjh7cOyuU/c4M4D6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElw== github-example-key
鍵のフォーマットは単にssh-rsa <signature> <comment>
であり、SSH-2フォーマットのファイルを並べ替えることで作成できます。
ssh-agent
を使用している場合は、おそらくssh-keygen
にもアクセスできるでしょう。
OpenSSH秘密鍵(id_rsa
ファイル)がある場合は、次のコマンドを使ってOpenSSH公開鍵ファイルを生成できます。
ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub
PuTTY秘密鍵(id_rsa.ppk
ファイル)しかない場合は、まずそれを変換する必要があります。
id_rsa.ppk
ファイルを選択してくださいid_rsa
として保存します(拡張子なし)。OpenSSHの秘密鍵が手に入りましたので、上記のようにssh-keygen
ツールを使ってその鍵を操作することができます。
正直なところ、私はそれが必要ではなかったので、私はこの鍵が何のために使われるのか知りません。しかし、私は長年かけて私が照合した私のノートにそれを持っています、そして私はここに健康的な良さのためにそれを含めます。ファイルは次のようになります。
-----BEGIN RSA PUBLIC KEY-----
MIIBCAKCAQEAhl/CNy9wI1GVdiHAJQV0CkHnMEqW7+Si9WYFi2fSBrsGcmqeb5Ew
gnhmTcPgtM5ptGBjUZR84nxjZ8SPmnLDiDyHDPIsmwLBHxcppY0fhRSGtWL5fT8D
Gm9EfXaO1QN8c31VU/IkD8niWA6NmHNE1qEqpph3DznVzIm3oMrongEjGw7sDP48
ZTZp2saYVAKEEuGC1YYcQ1g20yESzo7aP70ZeHmQqI9nTyEAip3mL20+qHNsHfW8
hJAchaUN8CwNQABJaOozYijiIUgdbtSTMRDYPi7fjhgB3bA9tBjh7cOyuU/c4M4D
6o2mAVYdLAWMBkSoLG8Oel6TCcfpO/nElwIBJQ==
-----END RSA PUBLIC KEY-----
このファイルは、OpenSSH秘密鍵(上記の「公開鍵の再生成」で生成されたもの)を使用して生成できます。
ssh-keygen -f ~/.ssh/id_rsa -y -e -m pem > ~/.ssh/id_rsa.pem
別の方法として、OpenSSH公開鍵を使用することができます。
ssh-keygen -f ~/.ssh/id_rsa.pub -e -m pem > ~/.ssh/id_rsa.pem
ssh
はあなたの公開鍵を読むことができないようです。しかし、それは問題ではありません。
あなたは公開鍵をgithubにアップロードしますが、あなたはあなたの秘密鍵を使って認証します。例えば参照。 ssh(1)
のFILESセクション.
公開鍵をクリップボードでコピーして貼り付けた場合、改行を含む公開鍵文字列が壊れる可能性があります。
公開鍵の文字列が1行になっていることを確認してください。
秘密鍵を直接保存する代わりに、「変換とエクスポートSSh鍵」に進みます。同じ問題を抱えていて、これは私のために働いた
私は同じ警告を受けました。とても古い鍵でした。現在のOpenSSH 7でキーを再生成したところ、エラーが消えました。