0

重複の可能性:パスワードを使用してシェル scipt で
su/sudo/ssh SSH にパスワードを渡す

sshコマンドのパスワードを渡すことができる可能性はありますか?

ssh root@10.20.30.40 | echo "Password" (or)      
echo "Password" | ssh root@10.20.30.40 (or) a script like below  
pw1="Password"
ssh -t root@168.56.64.245 <<< EOF  
$pw1  
EOF

どんな解決策も役に立ちます。

私はWindowsを使用していて、パテを使用してLinuxホストに接続し、そのLinuxから別のLinuxホストに接続していました。問題は、Linux ホストでサードパーティのツールを使用できず、RSA キーも追加できないことです。

4

3 に答える 3

0

expectを使用します。ここではスクリプトの例を示します。

#!/usr/bin/expect -f
    set timeout 20
    set IPaddress [lindex $argv 0]
    set Username "your_username"
    set Password "your_password"
    set Directory DIRECTORY_PATH

    log_file -a $Directory/session_$IPaddress.log
    send_log "### /START-TELNET-SESSION/ IP: $IPaddress @ [exec date] ###\r"

    spawn telnet $IPaddress
    expect "Username: "
    send "$Username\r"
    expect "Password: "
    send "$Password\r"
    interact
    send_log "\r### /END-TELNET-SESSION/ IP: $IPaddress @ [exec date] ###\r"
exit

出典: telnet と SSH による自動ログイン用のスクリプトを期待

編集:expectツールを使用したくない場合は、sshキー交換を使用してログに記録してみてください

EDIT2 : 例外または鍵交換を使用したくないと読みましたが、これらなしでこれを達成できるかどうかはわかりません。

この投稿を確認してください:

SSH 自動ログイン

別のオプション:

http://sourceforge.net/projects/sshpass/

于 2012-11-30T22:48:29.273 に答える
0

追加できないことはわかっていますが、sshpassがインストールされているかどうかを確認してください

于 2012-11-30T22:37:44.273 に答える
0

を使用しexpectます。こちらをご覧ください

私は自分のプロジェクトでそれを使用しました。本当に役に立ちました。実装には少し時間がかかりますが、ロジックは簡単です.sshの「クエリ」の後、コマンドの後に書いたものを正規表現として期待するだけです。それが役に立てば幸い。

于 2012-11-30T22:44:56.790 に答える