2016-07-07 17 views
1

プライベートとパブリックのRSAキーを生成しようとしているので、サプライヤに渡してSFTPサーバーに接続できます。 私はこのためにphpseclibを使用していますが、私が作成したキーが何であれ、入力されたSSHキーが無効でサポートされていないというエラーメッセージが表示されます。phpseclib OpenSSHまたはPuTTYgenキーの生成

を有効なキー(OpenSSHのか、PuTTYgenを)を入力してください私が試してみました:

<?php 
include('Crypt/RSA.php'); 

$rsa = new Crypt_RSA(); 

$rsa->setPrivateKeyFormat(CRYPT_RSA_PRIVATE_FORMAT_PUTTY); 
$rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_OPENSSH); 

//define('CRYPT_RSA_EXPONENT', 65537); 
//define('CRYPT_RSA_SMALLEST_PRIME', 982451653); // makes it so multi-prime RSA is used 
extract($rsa->createKey()); // == $rsa->createKey(1024) where 1024 is the key size 

echo $privatekey; 
echo "\n\n\n"; 
echo $publickey; 
?> 

これは、生成されたキーの例である:私は間違っ

PuTTY-User-Key-File-2: ssh-rsa 
Encryption: none 
Comment: phpseclib-generated-key 
Public-Lines: 4 
AAAAB3NzaC1yc2EAAAADAQABAAAAgQDFkOp+otBkW4gkiNZ9xbWrWjzAok+iD+gc 
GESAyE3FLMFteQtJbpHlsix2eeBTCTjgPXiaRHABtzeqyr6nuO44uXLotJ4WVHOJ 
5G75QFWZL0j61LLWZmHB7oxF2Vdt7BFAINu/UbGAhBVRdBaNDRxKSW/10KToOC+b 
1yhEAR9MXw== 
Private-Lines: 8 
AAAAgEZ1qXvieynfjw1glAalFWZ4N0SIXpgwzhn++adoSHwyuwVc7w6QVY4y3jKe 
wsc6ecNXiQSTtdKW0k6iIh7VEHggCwMjVIi752jYhiV2wc2gSaP5PnjYyrRpsVb8 
JjXZToYeRvWNvNPh4aS4x3CTSpB4BLcZ+7V451bNUy84XIM5AAAAQQDm+1RLu5o3 
NmUazpJT3a/KpEtfO5Fg4RuBgFu0dXM6+lfueFUMxpVJ1JY1eWRtCD7gr0EqYC3U 
HtNxuOoBk1pdAAAAQQDa9wkbrpQparL9GAoqWU4rP2bjBZ9Nd6fVozswgzGU4cUx 
nuxvirPdQfwBAKk8czSH1bY64NVfNF8nhNXCTS3rAAAAQC3Sse80v03IRDg/gT29 
VDeCj0P7chs7A0yQ3i4O/jf+s76hBGmpnif1bkkXENfue3Rswxsbq7CVy6Tww7W1 
BFk= 
Private-MAC: 89412f0a7977af0b8bd29bb67522628b4ab49ca8 



ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDFkOp+otBkW4gkiNZ9xbWrWjzAok+iD+gcGESAyE3FLMFteQtJbpHlsix2eeBTCTjgPXiaRHABtzeqyr6nuO44uXLotJ4WVHOJ5G75QFWZL0j61LLWZmHB7oxF2Vdt7BFAINu/UbGAhBVRdBaNDRxKSW/10KToOC+b1yhEAR9MXw== phpseclib-generated-key 

何をしているのですか?

+0

これは実際にプログラミング関連の質問ではありませんが、どの部分を送信していますか? – Devon

+0

自分のサーバーに接続するときの公開鍵。私は彼らに代わりに秘密鍵を送るべきですか? – Petrik

+0

いいえ、公開鍵は正しいですが、それは明示されていません。 – Devon

答えて

0

PuTTYキーの下部にはPrivate-MACセクションがありません。 phpseclibで生成されたPuTTYキーには、このセクションがあります。私のコード:

<?php 
include('Crypt/RSA.php'); 

$rsa = new Crypt_RSA(); 
$rsa->setPrivateKeyFormat(CRYPT_RSA_PRIVATE_FORMAT_PUTTY); 

extract($rsa->createKey()); 

echo $privatekey; 

出力:

PuTTY-User-Key-File-2: ssh-rsa 
Encryption: none 
Comment: phpseclib-generated-key 
Public-Lines: 4 
AAAAB3NzaC1yc2EAAAADAQABAAAAgQC61/qDBnv1Fhz7QUe5Bq9gBrUlS/sJZxiv 
CR5/a1ZlaTbb+V9ayK/f/7YvF/m9OnLE8qVQPdrGQ511xdk9WSO5LABNLReOIT/t 
ylbtM17Cl3If5BHm1jXK5Edxi5GPdOTfI3UJ2puoGsOxunKtDKflbbkIvPyoV/BJ 
W5+bZE6Jgw== 
Private-Lines: 8 
AAAAgELxiS8SzqzkTGP1YrY3X/R+0r5XN82Jo71q/gNXOPBCv0YXVgPX7bPLEcJT 
y8XxwBcyfOqADveEWFFPHuOtIW/lSui1WxXxxyhP3L+0Utt9SzhW8PKeciAAJjLg 
EzvQT/njSsPL9dFkfci6Ayc6cilvodCWhuJO74b8FPpqHQ15AAAAQQDcsrV3p5Du 
mFJ9fNvu3yer8poBaAU5QqsKgyMl7rnEnExEfIbo0utVUh2GYHeHRFJbTpErm8ia 
+IgV3Mo50OCVAAAAQQDYuvoI7jbRltk/YvwjS1+nE+BaHlArnF5wQwZiKvxJxSzo 
lF8nn+HTRBo9eGflCCBN5ZX4liq3VUFN1Eb/m0O3AAAAQQCNlBIwB1SorqE/7M8G 
VfJaJZScayO8HUSFGDk6ufXV0HquvaRIUGKEuezoTZU/tru+Q9CRMomSH3gFLrUj 
f7s8 
Private-MAC: e00a2fc04cf1d1acfa0f148d606f0d590e90f844 

キーがputtygenをしてうまく開くこと。

私の推測では、間違ってキーの一部を省略して、あなたの助けになるのを妨げてしまうか、... phpseclibの修正版を使用していますPrivate-MAC行が削除されます。

私はphpseclibの古いバージョンでは、phpseclibのすべてのバージョンにその行が含まれていると思うので、phpseclibのバージョンが過度に古いとその行の省略を説明するとは思わないということです。

+0

こんにちは、申し訳ありません私のポスト(今編集されている)でプライベートMACをスキップしました。しかし、私はサプライヤにその1つを送信しているので、拒否されているのは公開鍵です。 – Petrik

+0

puttygenで鍵を開くことができるようになりました。私はあなたの公開鍵を取り出し、それを私のauthorized_keysファイルに入れて、あなたの秘密鍵を使ってマシンにSSHできるようにしました。あなたは "サプライヤーはエラーメッセージを受け取る"と言う。あなたのサプライヤーは何ですか?投稿したキーでPuTTYでログインできるのであれば、サプライヤに間違いがあるようです。 PuTTYはPuTTYフォーマットの事実上の権限であり、PuTTYがキーを好きで、あなたのサプライヤーがそうでない場合...あなたのサプライヤーはおそらくPuTTYほどの権限ではありません。 OpenSSHでも公開鍵が好きなので、OpenSSHでも – neubert

関連する問題