人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

sftpの-bというオプションでバッチファイルを指定できるとあるのですが、この、バッチファイルの書き方がわかりません。バッチファイルを利用すれば、パスワード入力も不必要になるのでしょうか?それはそれで、別途色々と設定が必要なのでしょうか?良い情報、サイトをご存知の方、是非教えてくださいm(__)m

●質問者: takos
●カテゴリ:ビジネス・経営 コンピュータ
✍キーワード:とある オプション サイト バッチ パスワード
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● はてな滅ぶべし
●30ポイント

http://ykr414.com/dos/bat.html

コマンドプロンプトを使ってみよう! -バッチファイルとは?-

バッチファイルとはDOSやWindowsでコマンドラインからの入力の変わりにファイル(コマンドラインと同じ形式)を使ってコマンドを入力するもので、unixのshell scriptのようなものです。

細かい文法などはリンク左記を参照して右ください。(これでも分かりやすい方です)

例えば、ftpを使う際には毎回入力するコマンドをそのまま一行に一コマンドずつ書いた物をバッチファイルとして読み込ませると自動的に処理されます。

http://www.unixuser.org/~euske/doc/openssh/jman/sftp.html

sftp.0

ご質問の件ですが、

sftp -b バッチファイル [ユーザ@]ホスト名

とするとパスワードが必要な場合、

パスワード

mget logfile

put index.html

という内容のファイルを読み込ませると、自分がパスワードを入したときと同じように自動でログインしてログファイルをダウンロードし、index.htmlをアップロードするはずです。(sftp自体は使ったことがないのでここは実際に確認してみてください)

ですが、リンク先に書かれているように接続時にパスワードを入力しなくてもいいように、公開鍵認証を使うよう設定すべきです。

http://sonic64.com/2004-11-17.html

ssh scp sftp の正しい自動実行方法

セキュリティーに関してはこの辺を参考にしてください。

一言で言えば自分で色々と設定できないかぎり自動的な認証は危険です。

まして、パスワードの入ったファイルをそのまま保存しておくことはもっと危険です。

◎質問者からの返答

FTPの時はシェルで

-----------------

#!/bin/sh

ftp -i -n www.hogehoge.com <<END</p>

user name password

cd bakdata

put hoge.tar.gz

by

END

-------------

見たいなシェルをクローンで定期的に回していたのですが、これと同じようなことがしたいだけなのですが・・・・・

なにかいい方法ないっすかね?


2 ● はてな滅ぶべし
●0ポイント

http://d.hatena.ne.jp/fhvbwx/

Apple100% blog跡地

Windowsと仮定して回答をしましたが、回答が分かりづらくunixをお使いのようなので再回答させていただきます。

ポイントはひとつ分でも結構ですし、リンク先の私のblogの方でさらに質問してくださっても結構です。


バッチファイルとは自動処理(バッチ処理)を行うファイルのことをさし(ようするにクローンで定期的に回すファイルもバッチファイルです)、unix(cygwin、MacOSXでも同様)ではシェルスクリプトと同義です。


要するに、対話式の入力の変わりにシェルスクリプトはシェルからそのままsftpに送られますので、バッチファイルを指定しなくてもシェルスクリプトで動くはずです。

-----------------

#!/bin/sh

ftp -i -n www.hogehoge.com <<END

user name password

cd bakdata

put hoge.tar.gz

by

END

-----------------

-----------------

#!/bin/sh

sftp name@www.hogehoge.com <<END

password

cd bakdata

put hoge.tar.gz

bye

exit

END

-----------------

のようにsftpの文法に書き換えればできるはずです。


3 ● たも
●30ポイント

http://www.unixuser.org/~euske/doc/openssh/jman/ssh-keygen.html

ssh-keygen.0

やってみたところ、パスワードは FTP コマンドの前に必要になるようですね。

だから最初の二つ回答してくださっている方法ではできないみたいです。

つまり、バッチファイルに書けるのは get とか put とかだけなんですね。


そして、コマンドラインでパスワードを指定する方法はないようです。

そんなことをするのであればパスワードのない鍵を使え、ということのようです。

cron でまわす場合には ssh-agent も使えませんからね。

いや、まあ ssh-agent -a /home/user/.ssh.sock などと指定して起動しておけば

env SSH_AUTH_SOCK=/home/user/.ssh.sock sftp というように

cron で動かすこともできますけどね。


パスワードがないと心配かと思いますが、公開鍵認証は

数文字程度のパスワードとは比べものにならない強度がありますので

クライアント側マシンがクラックされなければ危険ではありません。


鍵の作成は ssh-keygen を使います。

秘密鍵に対するパスワードを聞かれたときにただリターンキーだけを押せば

パスワードなしの鍵ペアを作ることができます。

そして公開鍵を sftp サーバ側の ~/.ssh/authorized_keys に追加してやる、と。


あ、すでに鍵がある場合は ”ssh-keygen -p -f 鍵”

でパスワードを変更できます。


ところで、ただ put するだけなら scp でも大丈夫だと思いますよ。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ