2

超シンプルなsftpサーバーを実行しているリモートWindowsマシンにファイルを転送するシェルスクリプトを作成しようとしています。coreftpのライトバージョンです。したがって、公開鍵認証を使用するオプションはありません。

Linuxの終わりから、非Intelプラットフォーム用の機能を取り除いたバージョンなので、「expect」を使用したい場合は、expect / tcl/tkをインストールできません。これはテスト用で、シェルスクリプトからパスワードを入力したいと思います。利用できる方法はありますか?

#!/bin/sh
HOST='10.x.x.x'
USER='user'
PASSWD='passwd'

sftp $USER@$HOST

ツールを使わずにシェルスクリプトからパスワードを入力することはできませんか?

4

3 に答える 3

1

いくつかの代替手段があります。

  1. sshpassを使用して、パスワード認証を自動化できます。

  2. Putty パッケージ ( psftp ) の SFTP クライアントは、コマンド ラインからパスワードを受け入れます (ただし、これを行うことは完全に安全ではありません)。

  3. 次に、SFTP をサポートするスクリプト言語を使用できます。そのルートに行く場合は、expect のようなモジュールを使用してパスワード認証を自動化するのではなく、SFTP プロトコルを単独で実装するモジュールを使用してください。これにより、エラー チェックを実行する場合に特に簡単になります。

于 2014-11-19T08:48:30.570 に答える
0

あなたは期待することができます..

expect -c 'spawn sftp root@your-domain.com; expect password; send "your-password\n"; interact'
于 2013-02-06T15:55:48.440 に答える
0

このページには、ftp、sftp クライアントなどのパスワードが必要なアプリケーション (より正確には、ターミナルが必要なアプリケーション) とやり取りできる擬似ターミナルを作成する C 言語の簡単なデモ プログラムが含まれています。同じページのリファレンス セッションでも言及されています。lptyは、擬似端末でプログラムを実行するために使用できる別のより完全なユーティリティ プログラムです。

つまり、タスクを実行するには、疑似端末を処理できるプログラムが必要です。予想通り、期待モジュールを備えたperl、上記の直接Cプログラミング、またはlpty、さらに別の疑似端末プログラムです。または、Linux カーネルが /dev/ptmx および /dev/pty/ をサポートしている場合は、デバイス ファイルを開いてアクセスするだけで疑似端末を作成できます (シェル スクリプトから、おそらくですが、よくわかりません)。あなたの単純なARM on ARMがそれをサポートしているとは思えません...

lpty の移植は予想以上に簡単です。

于 2014-11-19T08:09:05.730 に答える