7

Net::SSH::Perlこのコードで公開鍵を使用して接続しようとしています:

my $ssh = Net::SSH::Perl->new($host, debug=>1) || die ......

キーを /root/.ssh/id_rsa と /root/.ssh/identity に入れました

公開鍵を使用しようとしているのではなく、代わりにパスワードを要求しようとしているようです:

私はこの出力を得る:

localhost: 鍵交換初期化 (KEXINIT) を送信しました。応答を待ちます。
ローカルホスト: アルゴリズム、c->s: 3des-cbc hmac-sha1 なし
ローカルホスト: アルゴリズム、s->c: 3des-cbc hmac-sha1 なし
ローカルホスト: Diffie-Hellman グループ 1 鍵交換に入る。
localhost: DH 公開鍵を送信し、応答を待っています。
localhost: ホスト キーを受け取りました。「ssh-dss」と入力します。
localhost: ホスト '10.212.1.201' は既知であり、ホスト キーと一致します。
localhost: 共有秘密鍵を計算しています。
localhost: サーバーの署名を検証しています。
ローカルホスト: NEWKEYS メッセージを待っています。
ローカルホスト: NEWKEYS を送信します。
localhost: 暗号化/MAC/圧縮を有効にします。
localhost: ユーザー認証サービスのリクエストを送信しています。
localhost: 受け入れられたサービス: ssh-userauth。
localhost: 空のユーザー認証要求を試行しています。
localhost: 続行できる認証方法: publickey、gssapi-with-mic、password。
localhost: 次に試す方法は publickey です。
localhost: 次に試す方法はパスワードです。
localhost: パスワード認証を試行しています。
localhost: バッチ モードでパスフレーズを照会しません。
localhost: 続行できる認証方法: publickey、gssapi-with-mic、password。
localhost: 次に試す方法は publickey です。
localhost: 次に試す方法はパスワードです。
localhost: パスワード認証を試行しています。
localhost: バッチ モードでパスフレーズを照会しません。
localhost: 続行できる認証方法: publickey、gssapi-with-mic、password。
localhost: 次に試す方法は publickey です。
localhost: 次に試す方法はパスワードです。
localhost: パスワード認証を試行しています。
localhost: バッチ モードでパスフレーズを照会しません。
localhost: 続行できる認証方法: publickey、gssapi-with-mic、password。
localhost: 次に試す方法は publickey です。
localhost: 次に試す方法はパスワードです。
4

1 に答える 1

11

見つかりました: キーファイルの場所を手動で指定する必要があります:

@KEYFILE = ("/root/.ssh/id_rsa");
$ssh = Net::SSH::Perl->new($host, debug=>1, identity_files=>\@KEYFILE)
于 2010-08-26T18:40:16.260 に答える