2016-06-27 106 views
1

Net :: SFTP :: Foreignモジュールがインストールされており、鍵交換sftpの設定にはうまくいきます。しかし、私はそれが私がログインに渡したパスワードを取る必要があるパスワードベースの認証を持つように設定する必要があります。Perl Net :: SFTP ::外部パスワード認証。鍵交換の設定はできません

このトピックでは複数のスレッドを実行していますが、PerlのIO:Ptyモジュールを使用すると何とかできます。以下は、使用することがわかったコマンドです。

my $sftp = Net::SFTP::Foreign->new(
    $host, 
    user => $user, 
    password => $password, 
    more => [ 
     -o => 'PreferredAuthentications=password,keyboard-interactive,***publickey***' 
    ], 
); 

ただし、ここでの優先認証では、公開鍵も渡されています。

誰でもこの手伝いできますか?ここで参照されている公開鍵は何ですか?

また、IO :: PtyをNet :: SFTP :: Foreignモジュールとともにインストールすると、自分の要件を満たすことができますか?

助けてください。

おかげで、よろしく、
エドゥ

+0

クロス投稿:PerlMonks:http://perlmonks.org/?node_id=1166664 – salva

答えて

-1

私はネット:: SFTP ::外国を使用してのポイントが表示されていない、ネイティブのネット:: SFTPを使用します。


とにかく、PreferredAuthenticationsはちょうど認証メカニズムのご優先順位を示しています。 publickeyは特定のキーを参照していません。単にNet :: SFTP :: Foreignが最初のパスワード認証を試みるべきだと言います。失敗した場合はキーボード対話型の認証を試し、失敗しても公開鍵認証を試してみてください。明らかに、鍵ペアを指定しない場合、公開鍵認証はリストされていても試行されません。

ssh_config man pagePreferredAuthenticationsも参照してください。あなたはどんなパスワード認証を使用しないようにしたい場合は

は、他の方法を列挙しない点がありません、リストだけでパスワード:

-o => 'PreferredAuthentications=password' 

IO:のPtyは、パスワード認証を実装するために必要とされています Net :: SFTP :: Foreignを使用しますが、Net :: SFTPを使用している場合は使用できません(他の依存関係もあります)。

+1

Net :: SFTPは純粋なperlですが、まだ毛深い数学ライブラリをコンパイルする必要があります。 Net :: SFTP :: Foreignはあなたのシステムの既存のsshコマンドを使います... IMO、これはsftpのためのより簡単で好ましいライブラリです。 – runrig

+0

返信いただきありがとうございます!私はちょうど以下を試みた。それはうまくいった。 my $ sftp = Net :: SFTP :: Foreign - > new(ホスト=> $ ftp_address、ユーザー=> $ ftp_user_id、パスワード=> $ ftp_password);// $方向($ ftp_source、$ ftp_target、変換=> 'unix2dos')、または "put put failed:"というメッセージが表示されます。 $ sftp-> error; 有効な入力パラメータでジョブが正常に終了しました。しかし、コマンドラインでは、次のメッセージを表示します。 SFTPとSCPをサポートするSSHサーバ パスワード icrestbのパスワードを入力してください このパスワードメッセージを受け取らないようにするにはどうすればよいですか? ありがとう – Edu

関連する問題