TeraTermマクロ書いてたらsshで初回ログインする時に
Are you sure you want to continue connecting (yes/no)?
って聞かれて、メンドイのぅ、と思ってたら↓のブログのように、 sshで初回ログイン時に「Are you sure you want to continue connecting (yes/no)? 」を抑止する方法 | alog .sshのコンフィグにStrictにHostをチェックしないぜ的な設定が↓のように出来ます、と。
$ vi ~/.ssh/config host * StrictHostKeyChecking no
そこから進めていくと、今度はsudoのパスワードがキャッシュされている場合とされてない場合に 対応しなければならないことが分かりました。 #制御入れてやらないと、ずっと待ち続けてしまったり、想定通りのプロンプトが帰ってこなかったり。 ググってくと、 ・sudoコマンド叩く時に『-k』ってオプションを付ければ良いとか、 ・/etc/sudoersに『Defaults timestamp_timeout = 0』って入れれば毎回きいてくるってのが出てきたのですが、 そういう権限持ち合わせておりませぬ、、っていう。 TeraTermマクロでなんとかしなきゃいけないわけなのですが、 既存のはwaitしてプロンプト見はって、sendlnでコマンドを突っ込む感じです、と。 ググってみるとwaitにはtimeoutの設定が出来て戻り値がxxだったらーみたいな制御が出来そうです。 って事で↓こんなんしてみました。
timeout = 1 wait 'password:' if result = 1 then sendln Password ※ ファイルから取得したヤツ endif wait '$' sendln 'id'
制御構文のページみてたら、自分らの世代にはあまり馴染みのないgotoっていうのもあります、と。 ↓こんな風にラベル付けて飛ばしてやることが出来るんですね。
timeout = 1 wait 'password:' if result = 0 goto sudo_password_cached sendln Password :sudo_password_cached wait '$' sendln 'id'
にしても、サーバによってプロンプトがチョコチョコ違ったりするので、 差分をガッツリ吸収するのは面倒臭そうだなぁ。。 ループ回してサーバ毎にタブをバンバン開いたりとかもしたいし。 Ubuntuのターミナル→Poderosa→TeraTermと、似たような事やってきましたが、 イザって時にサクっと立ち上がって、しかも軽いMacBook Airみたいなヤツで こういうのガッツリやれるようになったらアツいなぁと思ったりします。