2017-12-12 9 views
-2

ローカルエリアネットワークがあり、マシンは同じアドレス空間にあります。sshなしでローカルサーバ上でスクリプトを実行

他のマシンを制御するマネージャノードが1つあります。これらのマシンのいずれかでスクリプトを実行する方法はありますか? (注:SSHは有効になっておらず、マネージャマシン以外のマシンにコードをインストールすることはできません)

現在、ブラウザでhttpセッションを開き、ユーザ名とパスワードを入力し、各スクリプトについてGoでこれを自動化する必要があります。これは可能ですか?そのようなボタンの

例:

`<form ACTION="enableSsh.cgi" method="get"> 
    <b> 
     <input type="SUBMIT" VALUE="Enable SSH Service"> 
     <input type=hidden name=stamp value="########"> 
     <input type=hidden name=token value="********"> 
     <input type=hidden name=frame value="$%$%$%$%"> 
    </b> 
</form>` 
+0

あなたの質問は全く明確ではありません。あなたはそれにアクセスできないマシンでSSHをどのように有効にしますか? Webアプリケーションとは何ですか?そしてGoとの関係は何ですか? –

+0

コメントに記載されている間違いを修正したいと思います。 – Gauranga

+0

@Gauranga私たちが使用できる情報はほとんどありません。あなたのマネージャーマシンは、あなたがしたいことをすでにやり遂げることができますが、その部分は非常に不明です。すでにこれを行うことができる場合は、これを行うマシン上で実行しているコードをリバースエンジニアリングするか、このコードを書いた人に行ったことを尋ねる必要があります。マネージャーマシンが既に他のマシンでsshを有効にできる場合、それらのマシンは標準ではないサービスを実行します。マシンへのアクセス権を持たない人は、どのように動作するのか把握することは難しいです。 – nos

答えて

1

現在、そのブラウザでhttpセッションを開いて、その後、各スクリプトのためのページ上のボタンに続いてユーザー名とパスワードを提供することによって行われます。私はこれを自動化する必要があります。

バックエンドでスクリプトを実行する方法が見つかるまで、インターフェイスはまったく気にする必要はないと思います。私の見地からは、少なくともSSHDを設定することなく、マシン上でスクリプトを実行することは不可能です。あなたのスクリプトを実行させるには、あなたの要求を処理するために、何らかの種類のサーバをリモートマシン上で動作させる必要があります。 AnsibleSaltStack、およびso onなどの設定管理システムも見てください。これは、SSHでもあなたのユースケースには低レベルのツールだと思われるからです。

+0

ありがとうございました。私はそれが不可能である場合、確認が必要です。私は可能な限りすべての方法を試して失敗しました。だから、一度諦める前にチェックすることを考えた:) – Gauranga

1

はい、Go標準ライブラリのみで実行できます。

このために、勉強すること:HTMLフォームがインターネットブラウザによってエンコードされ、HTTPサーバーに送信されている方法

  1. に慣れる事:

    • The HTTP protocol - 特に そのGETPOSTリクエストメソッド。
    • Forms in HTML - 特にpt。 13「書式提出」。
    • HTMLフォームが送信されると、HTTPサーバ に送信されるデータは、典型的には二つの形式のいずれかで符号化され
    • application/x-www-form-urlencodedエンコーディング がGET要求および
    • を作るために使用されています
    • multipart/form-dataエンコーディングは、POST のリクエストに使用されます。あなたの例で

    、フォームは、フォームの送信がGET を使用して示し、したがって、その データのapplication/x-www-form-urlencodedエンコーディングmethod="get" 属性を有しています。

  2. に使用できるGo標準ライブラリのnet/httpパッケージはHTTP要求を行います。代わりに、このすべてのものと

、あなたはパラメータを適切に設定して、適切なサーバーおよびURLへのHTTP GET リクエストを作成する必要があります。

サーバーは、HTMLページを取得したサーバーと同じです。 URLは/enableSsh.cgiになります。

これでリクエストを作成するだけで済みます。ここで

one example ですが、本当にgolang+get+query+with+parametersのためにグーグルでは あなた類似の例の無数をもたらすでしょう。 クエリパラメータは、フォームフィールド-stamp,tokenおよびframe, であり、その値は、まもなく提出される予定です。あなたはその Writerタイプのストリームを構築するために使用することができゴー標準ライブラリに mime/multipartパッケージを使用すると思い、multipart/form-data エンコーディングでPOSTにフォームをする必要があります場合は


multipart/form-dataの規則に従ってエンコードされたデータ。

関連する問題