2

SonicWall ファイアウォール デバイスにログインし、デバイス ルールセットの自動バックアップを実行するコマンドを発行するためのシェル スクリプト (Bash) を作成しようとしています。私はこれを Bash で行うことを好みますが、python、perl、except、または applescript ソリューションを受け入れます。bash で実行できない場合は、その旨をお知らせください。

問題:

1.) ファイアウォール上の SSH サーバーはカスタムです。ユーザー名とパスワードは、

$ ssh server.com

したがって、発行するユーザー名に関係なく、たとえば

$ ssh admin@server.com

SSHサーバーは、その後もユーザー名とパスワードのボックスを表示します

2.) SSH サーバーは最小限であり、公開鍵を使用できません

ヒアドキュメントを使用してみましたが、機能せず、すぐに「リモートホストによって接続が閉じられました」という結果になります。

実行する必要があるコマンドは、次の形式になります。

export preferences ftp "ftp.server.com" "user1" "mypassword" "output.exp"

接続すると、次のようになります。

$ ssh admin@server.com


Copyright (c) 2010 SonicWALL, Inc. 

User:    

ユーザー名が発行されると、パスワード プロンプトが表示されます。

User:user1
Password:

ヒアドキュメントを試してみましたが、役に立ちませんでした。

$ ssh server <<+
user1
mypassword
export preferences ftp "ftp.server.com" "user1" "mypassword" "output.exp"
exit
+ 
Pseudo-terminal will not be allocated because stdin is not a terminal.
Connection to 10.1.1.1 closed by remote host.

エコーを使用してコマンドもパイプしようとしましたが、それも機能しません。

コマンドを手動で入力しても問題なく動作します。

これに関する任意の助けをいただければ幸いです。

4

4 に答える 4

1

元の を使用して ssh セッションを自動化できますexpect。これについて詳しく説明している素晴らしい記事があります: http://solar1.net/drupal/automating%20SSH%20with%20expectまたは Python モジュールpexepect: http://linux.byexamples. com/archives/346/python-how-to-access-ssh-with-pexpect/

于 2013-01-03T21:28:43.237 に答える
0

私はBASHの専門家ではありませんが、インタラクティブなパスワードプロンプトが問題を引き起こしている場合に何かをしなければなりませんでした。

基本的に、スクリプトはログイン資格情報の入力を求められるのを待つ必要があり、ログインするためのプロンプトが表示されたらそれらを渡す必要があります。ログインすると、コマンドを発行できます。

スポーンの「期待」セッションを確認することをお勧めします。基本的に、スクリプトで使用するexpectは、基本的に「パスワードが表示されることを期待しています。応答で、表示する場合は、次のデータを渡す必要があります」と言うことを期待しています。

これがそれを説明するのに役立つwikiページですhttp://en.wikipedia.org/wiki/Expect

そして、あなたがグーグルで回れば、あなたはたくさんの助けを見つけるでしょう。

于 2013-01-03T21:30:13.840 に答える
0

それは私にはうまくいきませんでした。

起動時に変数をスクリプトに渡す必要がありました。

3 つの引数を指定した起動スクリプト login2.sh の例:

-bash-4.1$ ./login2.sh Jan2**** HIE_SUPER 10.244.112.182

于 2016-12-02T02:23:46.937 に答える