常にパスワードとキーフレーズを要求する公開鍵


19

公開鍵を使用して、NASからWebサーバーにSSHしようとしています。NASユーザーは「root」であり、webserverユーザーは「backup」です

すべてのアクセス許可が正しく設定されており、SSH接続をデバッグすると次のようになります(デバッグの最後の少し)

debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering DSA public key: /root/.ssh/id_dsa.pub
debug1: Server accepts key: pkalg ssh-dss blen 433
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/root/.ssh/id_dsa.pub':

私は次のコマンドを使用しています:

ssh -v -i /root/.ssh/id_dsa.pub backup@webserver.com

パスフレーズを要求しているという事実は確かに良い兆候ですが、これやパスワードの入力を求めたくありません(パスフレーズで「return」を押すと後になります)

回答:


24

それはあなたの秘密鍵が暗号化されているからです...

ssh-add次のコマンドを使用して、キーからパスフレーズ(および暗号化)を使用するか、キーからキーを削除することにより、キーをsshエージェントに追加できます。

ssh-keygen -p -f /root/.ssh/id_dsa -N ''


編集

ああ、私はあなたがあなたの公開鍵を使って認証しようとしていることに気づいた...あなたはそこで秘密鍵を使いたい:

ssh -v -i /root/.ssh/id_dsa backup@webserver.com

そして、確実に確認するために、ファイルのコンテンツはWebサーバーに送信id_dsa.pub~backup/.ssh/authorized_keysれます。次のコマンドを使用して、自動的にそれを行うことができます

ssh-copy-id -i /root/.ssh/id_rsa.pub backup@webserver.com

それでも問題が発生します。うまくいき、「新しいパスフレーズで身分証明書が保存されました」と許可されました。ただし、次回ログインしようとするとパスフレーズを要求されます。私は...他に必ず何しようとしないんだ
アンドリュー・アトキンソン

私の更新の答えを確認...多分それは...助け
andrekeller

それは私がおそらく公開鍵に公開鍵を比較しようとしていたようだ...私はパスフレーズを削除する必要はありませんでした、ありがとうございました
アンドリュー・アトキンソン

私がパブを認証に使用していたという事実(愚かな間違い)が問題でした。ありがとう!
Qix 14

6

これは、私が持っていた秘密鍵がOpenSSH形式ではないときに起こりました。

最初にPuttyGenを使用してWindowsでキーを生成しましたが、これと同じことでバウンスされていました。

PuttyGenにキーをロードし、[変換]をクリックしてOpenSSH形式にすることで修正できました。


2

いくつかのことがあります。

主に、キーがパスワードを要求している場合、キーはそれで生成されました。次に、システムがパスワードの入力を求めている場合、キーは認証されていません。つまり、SSHキーを再生成(または@rbtuxの提案に従って変更)し、authorized_keysファイルを修正する必要があります。

ssh-keygen -t {dsa | rsa} -b {1024 | 2048 | 4096} -C "オプションのコメント" -f id_examplekey

中括弧内の項目は、オプション、タイプ、およびビットサイズです(明白なことを言うと、「セキュリティ」の観点からdsa> rsa、4096> 1024)。

次に、公開キー(.pub)をauthorized_keysand authorized_keys2ファイルに追加する必要があります(.pubはローカルでの使用を目的としていますが、比較対象とされているのはよくある誤解です).ssh

$ cat id_examplekey.pub >> authorized_keys {、2}

次に、最後に、キーのアクセス許可を確認し、chmod 600 id_exampleすべての入力を軽減するために、設定ファイルを設定できます:~/.ssh/configローカルボックス(スケルトン、これをトンでカスタマイズできます):

Host example.com
    User WHATEVERNAME
    IdentityFile ~/.ssh/id_examplekey

デバッグのセクション:debug1:サーバーはキーを受け入れます:pkalg ssh-dss blen 433これは、キーが受け入れられたことを意味しませんか?パスフレーズなしで再作成しましたが、まだ同じですか?-私はアイデアがありませんか?ありがとう
アンドリューアトキンソン

@AndrewAtkinson以下のように見えます。fromマシンの秘密鍵(ローカル、クライアントなど)と、authorized_keysファイルに追加されたpublic.pub鍵が必要です。私の他の提案はあなたの時間を節約するのに役立つはずです:D幸運を!
オタクウォーラー

ええ、私はちょうど質問者が何をしたかテストしたものの、公開鍵と-iをやって、そう、 - 「KEYはキーはそれで生成された、パスワードを要求された場合、主に」<あなたは書く$ ssh user@comp -i ~/.ssh/id_rsa.pubと、それは間違っている権限と民間とキーは無視されます.. id_rsaのようにアクセス権を600に変更し、パスフレーズを要求しました。あなたは、公開鍵を指定するのであれば、確かに、それはその後、公開鍵と秘密鍵の両方がパスフレーズで生成されていなかったにもかかわらず、パスフレーズを要求します
barlop

2

キー自体は暗号化されているため、私にとっては、次の手順に従いました。

  • ssh-agentを開始します。 $ ssh-agent bash
  • 標準IDキーをキーマネージャーに追加します。 $ ssh-add
  • 別のキーを追加する場合: $ ssh-add /location/of/key

いつでも検査するには、現在ロードされているキーのリスト:

$ ssh-add -l

詳細はこのリンクから入手できます



1

OpenSSH v7でデフォルトで無効になっているDSA pubkeyを使用していることが原因の可能性があります。

キーペアを変更できない場合/etc/ssh/sshd_config、次の行を更新または同等のものを追加することにより、可能な回避策としてwebserver.comのSSHデーモンにこれらのキータイプを受け入れるように指示します。

PubkeyAcceptedKeyTypes=+ssh-dss

そして、サービスを再起動します

/etc/init.d/ssh restart                     # or equivalent

0

Mac OSXでは、次のコマンドを使用して秘密鍵をキーチェーンに追加できます。

ssh-add -K /path/to/private_key

秘密鍵が〜/ .sshに保存され、id_rsaという名前の場合:

ssh-add -K ~/.ssh/id_rsa

その後、パスワードの入力を求められ、キーチェーンに保存されます。


Macクライアントが動作する場合、Linuxクライアントで何をする必要がありますか?
bbaassssiiee
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.