-1

毎日、何度も何度も多数のデバイスに ssh する必要があります... bash を使用して自動化し、次のスクリプトで期待することができます。

#!/usr/bin/expect
spawn  ssh hostname -l username
expect "password:"
send "secret\n"
interact

ほとんどのデバイスはログインとして「root」を必要とするため、上記のスクリプトはそのためにうまく機能します。上記のスクリプトを変更して、一度ログインを試行し、失敗した場合は別のユーザー名に切り替えてパスワードの入力を求めるようにしたいと考えています。それは可能ですか?

キーと、スクリプトでのパスワードの悪い習慣については知っていますが、私の場合は重要ではありません。

4

1 に答える 1

0

man ページには、すばらしい例がたくさんあります。

expect {
  "string that indicates success" {
  }
  "string that indicates failure" {
    close
    stty -echo
    send_user "Enter password: "
    expect_user -re "(.*)\n"
    send_user "\n"
    send "$expect_out(1,string)\r"
    stty echo
  }
}
interact
于 2012-10-28T05:47:10.360 に答える