cronとシェルスクリプトとscpを使い、

ファイルを定期的に別サーバに送りたいのですが、passwordを聞かれるので自動化できません。
scpコマンドでpasswordをあらかじめ書いておく方法を教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/06/01 19:29:22
  • 終了:--

回答(5件)

id:ruse No.1

ruse回答回数7ベストアンサー獲得回数02005/06/08 16:04:19

ポイント10pt

Expect というツールがあります。

UNIXのコマンド、「telnet」「ftp」「passwd」「su」の自動化が可能です。

http://kansai.anesth.or.jp/gijutu/expect/howto-expect.html#Intro

で書き方等が詳しく乗っています。

id:Kumappus No.2

くまっぷす回答回数3784ベストアンサー獲得回数1852005/06/01 19:55:45

ポイント18pt

パスフレーズなしの認証鍵を作る方法 または

ホストベース認証を使う方法(ただしセキュリティ的には落ちます)があります。


どっちもためしてはいないのでそこんとこよろしくお願いします

id:kunitz

ありがとうございます!

ホストベース認証

2005/06/01 19:57:37
id:dungeon-master No.3

dungeon-master回答回数571ベストアンサー獲得回数402005/06/01 20:01:47

ポイント18pt

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/447nonpassh.ht...

@IT:sshでパスワードなしにログインするには

これでどうでしょう。

id:kunitz

ありがとうございます!

ssh-agentを

2005/06/01 20:17:07
id:kikue70 No.4

kikue70回答回数110ベストアンサー獲得回数12005/06/01 21:21:30

ポイント17pt

http://www.aconus.com/~oyaji/backup/rsync.htm

Rsyncによるデータバックアップ

ご質問に対しての直接的な回答が出なかった為、答えなかったのですが、

回答を見ていますとスクリプトではなくてもOKの様でしたので、

変わり種をご紹介させて頂きます。公開鍵やらホスト認証、それに

PermitRootLogin fourced-command-onlyなどで限定的なコマンド制限を

掛けパスワード無しにしてしまうなんて方法もあります。


また、サーバ間ではなくて1台クライアントを挟むのはダメでしょうか。

TeraTermのマクロ(ttl)を使用してタイマー仕掛けにするなんていう・・・

回りくどい方法ですが、色々使えると思いますのでご参考になればと思います。


; open Tera Term

connect ’ターゲットホストIPアドレス:23’


; set Password,Prompt

Password = ’パスワード’

Prompt = ’[admin admin]$’

suPrompt = ’[root /root]#’


; login&shutdown command

wait ’login:’

sendln ’admin’


wait ’Password:’

sendln Password


wait Prompt

sendln ’su -’

wait ’Password:’

sendln Password

wait suPrompt

sendln ’telnet localhost 25’

wait ’+0900’

・・・と待ちが入れられます。

id:kunitz

ありがとうございます!

TeraTermのマクロ(ttl)

2005/06/02 00:13:28
id:chatoraneko No.5

chatoraneko回答回数221ベストアンサー獲得回数02005/06/01 23:27:29

ポイント17pt

http://search.cpan.org/author/IVAN/Net-SCP-0.07/SCP.pm

Net::SCP - Perl extension for secure copy protocol - search.cpan.org

perlで書けます。


#procedural interface

use Net::SCP qw(scp iscp);

scp($source, $destination);

iscp($source, $destination); #shows command, asks for confirmation, and

#allows user to type a password on tty


#OO interface

$scp = Net::SCP->new( ”hostname”, ”username” );

#with named params

$scp = Net::SCP->new( { ”host”=>$hostname, ”user”=>$username } );

$scp->get(”filename”) or die $scp->{errstr};

$scp->put(”filename”) or die $scp->{errstr};

#tmtowtdi

$scp = new Net::SCP;

$scp->scp($source, $destination);


#Net::FTP-style

$scp = Net::SCP->new(”hostname”);

$scp->login(”user”);

$scp->cwd(”/dir”);

$scp->size(”file”);

$scp->get(”file”);

$scp->quit;

id:kunitz

ありがとうございます!

perlで書けます。

2005/06/02 14:23:06

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません