web-dev-qa-db-ja.com

sftpおよび公開鍵

他の誰かがホストしているサーバーにsftpしようとしています。

これが機能することを確認するために、私は標準のsftp [email protected]を実行しました。パスワードが要求され、それは正常に機能しました。

週に1回ファイルを送信するようにcronスクリプトを設定しているので、authorized_keysファイルに追加したと主張する公開鍵を提供しました。

sftp [email protected]を再試行しましたが、パスワードの入力を求められますが、パスワードが機能しません...

Connecting to [email protected]...
[email protected]'s password: 
Permission denied, please try again.
[email protected]'s password: 
Permission denied, please try again.
[email protected]'s password: 
Permission denied (publickey,password).
Couldn't read packet: Connection reset by peer

ただし、enter(パスワードなし)を押すだけで正常にログインできることに気づきました...

これが私の質問です:

  1. Sftp接続が使用しているprivatekey/pulbickeyペアを確認する方法はありますか?
  2. 使用するキーペアを指定することはできますか?
  3. すべてが正しくセットアップされている場合(正しいキーペアを使用し、承認されたファイルに追加されている場合)、空白のパスワードの入力を求められるのはなぜですか?

よろしくお願いします!

[〜#〜] update [〜#〜]

sftp -vvv [email protected]を実行しました

....
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /root/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: SHA1 fp 45:1b:e7:b6:33:41:1c:bb:0f:e3:c1:0f:1b:b0:d5:e4:28:a3:3f:0e
debug3: sign_and_send_pubkey
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /root/.ssh/id_dsa
debug3: no such identity: /root/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password

公開鍵を使おうとしているようです...何が足りないのですか?

4
Lizard

詳細モードで実行すると、次のことが役立ちます。

sftp -vvv [email protected]

これにより、使用しているキーと、うまくいけばパスワードを要求する理由がわかります。

更新:使用する秘密鍵をsshに指示できます: http://www.cyberciti.biz/faq/force-ssh-client-to-use-given-private-key-identity-file/ =しかし、同じサーバー側をどのように実行するかわからない

2
Dirk Gorissen

あなたがしたことを行う方法について出てきた最初のリンク: http://ask-leo.com/how_can_i_automate_an_sftp_transfer_between_two_servers.html

あなたが取ったのと同じステップを説明しているようですが、結果として問題は発生しません。秘密鍵がパスワードを使用していないことを確認しましたか?このサイトは、キーがSFTPによって自動的に照合されることを意味します。キーフィンガープリントを使用していると思います。

また、SFTPの manページ を見て、パスワード認証よりもキーベース認証を優先するように必要なオプションを指定してみてください。

更新:
サーバー側が適切に構成されていない可能性がありますか?たとえば、authorized_keysファイルにuser @ host?を指定する誤ったエントリがあります。

0
Ioan