2017-03-01 8 views
-2

問題: 私のサーバ(Linux)、ジャンプサーバ(Linux)、シスコボックスの3つのデバイスがあります。 私は手動でジャンプサーバにsshを送り、そこからsshをシスコボックスに送り、対話形式でコマンドを実行することができます。 PHPを使用してこれをプログラマチックに達成できる方法はありますか? 私はシスコボックスからの応答を相互に確認し、それに応じて次のコマンドを調整したいと考えています。 私はPythonで同様のことをしましたが、ソケットを使用して直接接続することができました。(間にジャンプサーバーはありません) 対話セッションのジャンプサーバ経由でのsshへのデバイス

+0

google 'php ssh' – Ibu

+0

またはGoogleのインタラクティブなphpシェル。 – Dimi

+0

私はグーグルをしています - php + ssh、sshトンネル、ポートフォワーディングなど一日中は何も見つかりませんでした。実用的な提案をしてください。 –

答えて

0

man ssh

-t  Force pseudo-terminal allocation. This can be used to execute 
     arbitrary screen-based programs on a remote machine, which can be 
     very useful, e.g. when implementing menu services. Multiple -t 
     options force tty allocation, even if ssh has no local tty. 

したがって、ssh -t jump_server ssh -t cisco_box ...

はまた、あなたがproc_openまたはexec経由でPHPで、このようなコマンドを使用することができます。その後、PHPで利用可能な実行されたsshのstdin、stdout、stderr(他のファイル記述子と同様)を持っているので、コマンドとデータをciscoボックスとの間で送受信できます。

ttyが必要かどうかは、相手側のプログラムによって異なります(-t施行)。 mcのようなプログラムはttyを必要としますが、ほとんどのコマンドラインツールは(単に-tのようなものではありません)。

+0

このアイデアが妥当であれば、どのようにPHPでラップしてからコマンドを送信し、出力を受け取ることができますか?申し訳ありませんが、私はこの時点で私が理解するために少し漠然としています。 –

+0

多くの失敗した試みの後、私は現在Pythonで試しています。私の新しい質問はhttp://stackoverflow.com/questions/42557671/how-do-i-capture-password-prompt –

+0

シェルからsimpe useを試してみましょう。動作したら、PHPから呼び出す方法を見つけてください。 –

関連する問題