Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

expectでssh自動ログイン

      2019/05/23

sshで他のサーバーにログインする時に、毎回パスワード入力するのって面倒ですよね?

え? SSH鍵認証使えばパスワードなしでログインできるって?

その通りなんですが、ログイン先の環境を勝手にいじれなくてSSH公開鍵を置けない状況だったりすることもあるんです。

そういう場合の対処方法はいくつかあるんですが、今回はexpectコマンド使って自動化する方法を紹介します。

いたって簡単。実行環境にexpectコマンドが入っていれば以下のようなスクリプトを書くだけです。

#!/usr/bin/expect
set timeout 10
spawn ssh user@192.168.0.1
expect "password:"
send "hogehoge\n"
interact

上記の場合、ログインユーザがuser、サーバが192.168.0.1、パスワードがhogehogeの場合のスクリプトです。また、ログイン時に 「password:」というメッセージがサーバから送られてきたら、hogehoge + 改行 を送ってくれます。

ね、簡単でしょ。

スクリプトのデバッグしたいときは、「exp_internal 1」をスクリプトの最初で実行してあげればOKです。password: という文字にマッチしたかどうか等が確認できます。

 - サーバ構築

336px

Message

メールアドレスが公開されることはありません。

  関連記事

no image
CPU を Ivy Bridge に変更したら early exception 0d rip error が出た@Fedora 15

CPUを古いAMDのAthlonから、IntelのIvy Bridge (i5) …

no image
レスキューモードでLVMを認識させる@RHEL5

以下のコマンドでレスキューモードでLVMのボリュームグループを認識できます。 # …

no image
iptablesの操作@Fedora 17

iptables を起動時に自動起動するようにする # system enabl …

no image
WordPress高負荷対策→同一ApacheのIPのアクセス数制限@CentOS 5

一日に数回サーバ高負荷で応答がなくなってしまって困っていました。load ave …

no image
rpmが削除できない@CentOS 5.2

rpm -e でパッケージ削除中に誤ってCtrl-Cを押してしまい、中途半端に削 …

no image
Tracにガントチャートプラグイン導入@Debian Etch

Tracの導入の記事で導入したTracにガントチャートプラグインを導入してみまし …

no image
CPU数を動的に変更する@CentOS 5.5

カーネルにパラメータ(maxcpus)を与えて、OSで使うCPU数を変更できるこ …

no image
BRAVIAでDNLAを使用してみる

以前記事でかいたSonyの液晶テレビBRAVIAのKDL32-F1ですが、PS3 …

no image
systemdやsystemctlコマンドを少し調べてみた

systemd が使いにくいので避けていたのですが、やっとFedora 15 を …

no image
Ubuntuの起動画面が途中で見えなくなる@Ubuntu 9.04

Ubuntu 9.04を入れてみました。 起動時の画面が途中で真っ暗になったり、 …