sshpassを使ってパスワード指定のSSH接続を行ってみる(パスワード指定自動ログイン)
ご利用のブラウザは、JavaScript が無効 となっていませんか?
このサイトでは、コンテンツの一部が非表示 、あるいは、コメント、お問い合わせの投稿ができない 、検索ができない ことがあります。
今回は、SSHです。
sshpass ( Non-interactive ssh password authentication ) を使うとコマンドラインにてssh接続のパスワードを指定することができ、
sshと合わせて1行でssh接続し、ログインできるようになります。
つまり、パスワード指定のSSH接続でも自動化ができるます。
以下は、sshpassを使ってパスワードを指定した時の例です。
$ sshpass - p '123456' ssh hoge@host. example. com
この時、
パスワード : 123456
ユーザ : hoge
ホスト : host.example.com
となります。
簡単ですね、先に sshpass + パスワード を指定して、あとは、ssh そのままです。
では、早速、簡単に解説してみます。
sshpassをインストール
まずは、sshpassをインストールします。
CentOS ,
ScientificLinux
CentOS ,
ScientificLinux では、リポジトリ EPEL にて公開されていますので、
以下の EPEL リポジトリのインストールから、sshpassのインストールまでを以下に解説してみます。
$ rpm - ivh http:// dl. fedoraproject. org/ pub/ epel/ 6/ i386/ epel- release- 6- 8. noarch. rpm
警告: epel-release-6-8.noarch.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
準備中... ########################################### [100%]
1:epel-release ########################################### [100%]
EPEL のリポジトリのRPMファイルは、OSのバージョン、OSのビット(32bit or 64bit)で異なりますので注意しましょう。
CentOS5
32bit : http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
64bit : http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
CentOS6 , ScientificLinux6
32bit : http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
64bit : http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
$ yum install sshpass
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
...
Is this ok [y/N]: y
Downloading Packages:
sshpass-1.05-1.el6.i686.rpm | 19 kB 00:00
警告: rpmts_HdrFromFdno: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895 : NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Importing GPG key 0x0608B895 :
Userid : EPEL (6) <epel@fedoraproject.org>
Package: epel-release-6-8.noarch (installed)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Is this ok [y/N]: y
...
Installed:
sshpass.i686 0:1.05-1.el6
Complete!
途中で警告メッセージが表示されます。これは、
NOKEY による警告です。
まず、問題はないと思いますが、気になる方は、https://fedoraproject.org/keys で確認しておきましょう。
RPM-GPG-KEY-EPEL-6
pub 4096R/0608B895 2010-04-23
Key fingerprint = 8C3B E96A F230 9184 DA5C 0DAE 3B49 DF2A 0608 B895
uid EPEL (6) <epel@fedoraproject.org>
Debian ,
Ubuntu
Debian ,
Ubuntu では、そのままaptでインストールできます。
$ aptitude install sshpass
以下の新規パッケージがインストールされます:
sshpass
更新: 0 個、新規インストール: 1 個、削除: 0 個、保留: 1 個。
10.2 kB のアーカイブを取得する必要があります。展開後に 65.5 kB のディスク領域が 新たに消費されます。
取得:1 http://ftp.jp.debian.org/debian/ squeeze/main sshpass amd64 1.04-1 [10.2 kB]
10.2 kB を 0秒 秒でダウンロードしました (11.9 kB/s)
未選択パッケージ sshpass を選択しています。
(データベースを読み込んでいます ... 現在 36175 個のファイルとディレクトリがイン ストールされています。)
(... /sshpass_1.04-1_amd64.deb から) sshpass を展開しています...
man-db のトリガを処理しています ...
sshpass (1.04-1) を設定しています ...
sshpassを使ってみる
使い方は、最初に例をあげたように先に sshpass + パスワード を指定し、以降は、ssh コマンドをそのまま指定します。
$ sshpass - p '123456' ssh - o StrictHostKeyChecking= no hoge@host. example. com
Last login: Wed Nov 21 09:48:50 2012 from 192.168.1.33
[hoge@host ~]
/home/hoge
[hoge@host ~]
hoge
[hoge@host ~]
logout
Connection to 192.168.1.99 closed.
$
-o StrictHostKeyChecking=no を指定しないと、初回接続時に、以下のような厳格なホスト鍵チェックの確認メッセージが出力されるので、これを避けるために設定しています。
The authenticity of host '192.168.1.99 (192.168.1.99)' can't be established.
RSA key fingerprint is 11:22:33:44:55:66:77:88:be:d0:ca:61:52:6f:ad:d8.
Are you sure you want to continue connecting (yes/no)?
また、ポート番号をデフォルトと異なるように設定している場合は、
-p オプションで追加しましょう。
sshpass のオプションには、以下のものがあります。
-f filename 指定されたファイル名(パスワードのみを出力したもの)に出力されたパスワードを使用する
-d number ファイル番号(C言語のopenの戻り値に相当する、通常、使わないかな、プログラミングしたい方向け)
-p password コマンドラインにて指定されたパスワードを使用する
-e 環境変数 "SSHPASS"に指定されたパスワードを使用する
これだけは、理解しておいて欲しいのですが、いずれも、セキュアではありません。
便利さを追求したもので、これを使ってログインする場合は、人に覗かれる心配や、スクリプトにしてしまった場合は、管理を十分に考えないといけないでしょう。
ただ、便利なのは確かです。
sshpass は、パスワードには対応していますが、秘密鍵の暗号化を図っているパスフレーズについては、対応していません。
対話型の自動化には、expect を使う例がよくありますが、これがまた、はまることが多いです。
そんなときは、素直に既にあるパッケージを利用するのが早道か・・とも思いますので、記事にしておきました。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用 となっていませんか?
このサイトでは、コンテンツの一部が非表示 、あるいは、コメント、お問い合わせの投稿ができない 、検索ができない ことがあります。
関連記事 :
コメントを投稿 :