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
Windows7 – 非ページ プール割り当ての制限に達したため、サーバーはシステムの非ページ プールから割り当てることができませんでした

Windows7 でファイルの共有(ファイルサーバー)をしていると以下のエラーが …

no image
SquirrelMailの添付ファイルサイズ変更@Debian Etch

SquirrelMailで送信できる添付フィルのサイズがデフォルトだと2Mのよう …

no image
デフォルトサーバ証明書の更新 @ CentOS 4

インストール時に自動的にインストールされるApacheのSSLの証明書を更新する …

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

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

no image
sshのちょっと高度な使い方

めっきり使う機会が減ってしまったtelnetの代わりによく使うssh。最近はmo …

no image
iptablesの操作@Fedora 17

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

no image
タイムゾーンの変更方法@RHEL

RHELやCentoSインストール時にタイムゾーン間違ったり、VMwareでクイ …

no image
コンピュータ名でアクセスできるがIPでアクセスできない@Windows ファイル共有

タイトルのような事象がWindows のファイルの共有で発生しました。 コンピュ …

no image
gitのbash-completionを使用してのプロンプト変更@Ubuntu 14.04

Git 最低限の設定@CentOS 5 でGitのbash_completion …

no image
manをmoreではなくlessで見る@FreeBSD 7.1

さくらインターネットでsshでログインし、manを打つとmoreを使用してページ …