この質問は何度か聞かれましたが、私の検索ではどこでも関連する回答は見つかりませんでした。パスワードを入力せずに、キーを使用せずにSSHを実行するスクリプト
セキュリティが問題ではなく、思考が数秒間あれば誰でもパスワードを推測できる開発環境で働いています。
私がやっていることは簡単です。ローカルの.bashrcファイルでエイリアス関数を作成しました。この関数がデフォルトのパスワードでマシンに自動的にログインするようにしたいと思います。私はそれを実行すると
function s() {
ssh [email protected]$1
}
は、私はこのような何かを得る:
~]s 122
ssh [email protected]
[email protected]'s password:
はバッシュを使用して、なくRSAキーを使用して、私はこれを取得したいと思い
私の現在の実装では、次のようになりますデフォルトのパスワード「パスワード」を使用します。
IPとユーザーが既に設定されている場合は、次のように試しました。私は、マシンを接続することができる午前、次のコマンドを使用して
Connecting and logging into server using expect
usage: send [args] string
while executing
"send"
invoked from within
"expect "assword" send "password""
[email protected]'s password:
bash: spawn: command not found...
:
Do=$(expect -c "
spawn ssh [email protected]${IP[0]}.${IP[1]}.${IP[2]}.${IP[3]}
expect \"yes/no\"
send \"yes\r\"
expect \"assword\" send \"password\"")
echo $Do
$Do
それはfollwingエラーが発生します。対話を削除すると、uptimeコマンドが実行され、接続が閉じられます。対話コマンドでは、私が入力しているものを見たり、実際にマシンと対話することができません。何か案は?
Do=$(expect -c "spawn ssh [email protected]${IP[0]}.${IP[1]}.${IP[2]}.${IP[3]}; set timeout 4; expect \"assword\"; send \"password\n\"; expect \"test\"; send \"uptime\n\"; interact;");echo $Do;
SPAWNコマンドは環境を設定していますか?そうでなければ、パスは設定されず、 'ssh'を探す場所がわかりません。実行可能ファイルに完全なパスを入れてみてください。 – Jay
RSAキーの嫌悪感は何ですか?新しいシステムをセットアップするときに私が最初にやることは、RSAキーを承認することです。 – mpontillo
私は非常に限られた生涯しかない多くの異なるサーバで作業しているので、私はRSA鍵で作業したくありませんでした。このスクリプトは多くの人々によって使用される予定です。毎回同じパスワードを入力してください。 ssh-copy-idに新しいマシンを初めて訪れるたびにパスワードを入力しなければならない場合、そのキーはその目的を破ります。 – SuperTetelman