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
DLNAサーバ TVersity

PS3はDLNAクライアント機能があるため、ネットワーク上にある音楽や動画を再生 …

no image
ディスクイメージを直接マウントする@Linux

以前、ディスクイメージファイルをkpartxを使ってマウントする方法を紹介しまし …

no image
Apacheのプロキシ(proxy)機能

Apacheにはフォワードプロキシやリバースプロキシの機能があります。 フォワー …

no image
iSCSIを使ってみる@CenOS5.2 (ターゲット) + Windows XP (イニシエータ)

CentOS 5をtarget、Windowsをinitiatorとして、iSC …

no image
VMware Serverのコンソールが起動しない@Debian Etch

数年前にDebian EtchにVMware 1.0.4をインストールした時は、 …

no image
iptablesの操作@Fedora 17

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

no image
OpenStackをインストール中にはまった@Ubuntu 12.04

OpenStack は様々なコンポーネントがあるため、インストールのための支援ツ …

no image
tarファイルを解凍せずに中身をみる@Linux

tarファイルの中身を見るのに、小さなファイルなら解凍して中身を展開すればよいで …

no image
Linuxコンテナ(LXC)を使ってみた@Ubuntu 14.04

Linuxコンテナ(LXC)をUbuntu 14.04上で使用した時のメモです。 …

no image
JBossのHypersonicSQL(hsql)管理ツール起動方法

JBossには気軽に使用できるHSQLが組み込まれています。ちょっとしたDBを使 …