パスワードをssh接続に送信することを期待して使用するにはどうすればよいですか?.
パスワードはp @ sswordであり、sshコマンドはssh [email protected]であったとします
それが言うときにパスワードを入力させると期待して何をしますか
[email protected]のパスワード:
?
SSHキーペアを使用する適切なアクションは、ssh(scp)を使用してサーバーにキーを配置する必要があり、パスワードを要求されるため、オプションではありません。
私は常に「適切な」ソリューションを使用していましたが、他の状況ではexpectを使用していました。
ここ 次の提案が見つかりました:
#!/usr/local/bin/expect
spawn sftp -b cmdFile [email protected]
expect "password:"
send "shhh!\n";
interact
公開鍵認証を使用し、パスフレーズなしで鍵を使用する方が簡単ではないでしょうか?
ソースマシンのユーザーがこれを行うと、RSAキーが作成されます。
ssh-keygen -t rsa
〜/ .ssh/id_rsa.pubをターゲットマシンにコピーし、ターゲットユーザーのauthorized_keysファイルに追加します。
あなたの最速の方法は(Tclの専門家になりたい場合を除いて、2009年には珍しい...)、おそらくautoexpect
を使用することです。これがmanページです。
http://expect.nist.gov/example/autoexpect.man.html
要するに、autoexpect
を起動し、sshセッションを実行し、必要なことを完了し、自動期待を停止してから、結果の混乱の上でキーボードが機能するまで叩きます:)あなたの鍵を整理するための簡単なハック以上のものは、それであなたはそれですでにスコアを知っているように聞こえます。
そして、 この質問 があります。これには、探しているものに近い例がすでに含まれています。
Cygwinのautoexpectはbinパッケージに含まれていません。 setup.exeを実行して、expectを検索し、ソースチェックボックスをオンにします。結果のツリーが/ usr/srcに表示され、そこにexpect/expect/examplesディレクトリがあります。そこにはautoexpectスクリプトのコピーがあります。
キーはsshを実行している人だけが読み取り可能でなければならないため、キーソリューションは機能しません。 XPでは、適切な権限を持つキー構造を作成できません。したがって、sshはそれらを読み取りません。これは変更された可能性がありますが、最後に確認したところ、まだ機能していません。