0

一部の機器に telnet で接続するか、機器がラボにある場合はファイアウォール マシンに ssh 接続してから、機器に telnet 接続してコマンドを実行し、さらに処理するために出力を返す Python スクリプトを取得しました。

このスクリプトを Django Web アプリに結び付けて、ブラウザーからターゲット システム情報をフォームに入力し、結果を表示できるようにしました。コマンド ラインからこの Web アプリを起動し、ブラウザー (python manage.py アプリ) からアクセスすると、すべて正常に動作します。

ただし、これを「本番」モードで実行するように設定し、Apache で仮想ホストを使用すると、SSH が失敗します。これは root または何らかの Web アカウントで実行されており、ファイアウォールに SSH で接続できないと思われます。

誰かがこれを機能させる方法を提案できますか? ファイアウォール マシンに対する権限がないため、SSH を設定して Web アカウントで実行することができません。

SSH が使用されている場合、ユーザーからユーザー名とパスワードを収集し、それを ssh に渡す必要がありますか? または、telnet 情報とコマンドを機器に渡す他の方法はありますか?

4

1 に答える 1

2

あなたは近くにいます。ここでの問題はおそらく、Web サーバーが非特権ユーザー (root ではない) として実行されていることです。たとえば、またはwww(オペレーティング システムによって異なります)。そのユーザーはおそらく SSH バイナリを実行できます が、 .認証に使用します。www-datanobodynobody.ssh/id_rsa

いくつかのオプションがあります。秘密鍵を Web サーバー ソフトウェアで使用できるようにして-iから、ID ファイルを選択するオプションを指定して ssh を起動します。または、オプションで指定した SSH 構成ファイルでこれを行い-Fます。またはsudo、 を使用して ssh を起動し、Web サーバー ソフトウェアに、他の (シェル) ユーザーとして ssh を実行できるようにします。

質問に詳細が記載されていないため、これ以上具体的な回答を提供できません。OS、サンプルコードなど

お役に立てれば。

ああ、これをしないで、他の解決策を見つけることも検討する必要があります。ファイアウォールに SSH アクセスできる Web アプリケーション (内部アプリケーションであっても) はありますか? 私にとっては、最終的な災害のレシピのように聞こえます。:-)

于 2012-04-04T00:14:14.297 に答える