バッチマシンで別のスクリプトをリモートで実行するbashスクリプトを作成する必要があります。そうするために私はSSHを通してスクリプトを渡しています。'expect'コマンドを使用してリモートでスクリプトを実行するSSHにパスワードを渡す
ssh -p$port [email protected]$ip 'bash -s' < /path/to/script/test.sh
私はそれが私のRSAキーを使用するだろうと思ったが、私はエラーを取得しています:
"Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)"
私は無駄にsshpassを使用してみました。だから私の次の解決策は期待を使用していた。私は以前は期待していたことが一度もありません。
ssh -p$port [email protected]$ip 'bash -s' < /path/to/script/test.sh
/usr/bin/expect <<EOD
expect "password"
send "$spass\n"
send "\n"
EOD
私はすべてのマシンにrootアクセス権があり、コードがbash内に残っている限り、ANYソリューションが実行します。これは、親スクリプトから渡されたグローバル変数($ spass、$ ip、$ portなど)をループとして実行されることに注意してください。次の2つの手段で間違ったことをやっている
はマシンのルートの 'の.ssh/authorized_keys'ファイルのそれぞれであなたのSSH公開鍵ですか?私はキーケースを使ってあなたのssh認証をしようとしているときになぜあなたがsmackdownを取得しているのかを理解することが最善のケースシナリオであると思います。 – JNevill
'ssh -v {port} root @ {ip}'で手作業で接続して、何が起こっているのかをより正確に把握することができます。 – Mike
重要な問題を解決することは、パスワードのプロンプトをハッキングすることよりも多くの**良い解決策です。 –