SSH接続でw3mではなく実際のブラウザーを使用する


10

UbuntuをデスクトップおよびサーバーOSとして使用しています。sshon terminalを介してサーバーにログインし、サーバーでWebページ(localhost)を表示する必要がある場合は、w3m(w3m localhost)を使用します。

残念ながら、このページにはいくつかの大きなメニューがあり、jQueryを使用しているため、w3mの処理はそれほど簡単ではありません。ですから、デスクトップ上のブラウザを使用して、実際のブラウザ(FirefoxまたはChrome)でSSH経由でサーバーに接続できるかどうか疑問に思っています。

基本的にはしてSSHを介してサーバへの私のデスクトップ上のブラウザで接続するために必要となるusernamepassword、そのサーバー上で開きますlocalhost

これはデフォルトで可能ですか、それともFirefox / Chrome用のアドオンはありますか?私はFirefoxを好みます。


あなたの質問に対する答えではありませんが、... X転送の使用についてはどうですか?
ハビエルリベラ

1
http経由でリモートサーバーに接続できないのはなぜですか?テスト目的でローカルホストから発信するリクエストが特に必要ですか?@Javier X転送は、特にfirefoxの場合、帯域幅が重いため、非ローカル接続には推奨しません。
Carsten Thiel、2011年

一方でテスト目的のため、ローカルホストである必要があります。一方、リモートサーバーはローカルネットワークにないため、通常のhttp経由で到達できません。
ピット

はい、帯域幅が懸念されるとき、転送X.
ハビエル・リベラ

回答:


14

sshポート転送を使用します。

次のようなものでリモートサーバーに接続します。

ssh -L 8080:localhost:80 user@remoteserver

次に、ローカルブラウザでlocalhost:8080を指定します。リモートサーバーのlocalhost:80に転送する必要があります。


これをローカルネットワークのサーバーでテストしたところ、動作するようです。後でリモートサーバーでテストします。
ピット

6

パート1

sshでsocksプロキシを作成してください!

ssh -D 9999 user@remoteserver

Firefoxの設定を開き、[詳細]> [ネットワーク]> [設定]に移動します。手動プロキシ構成を選択します。SOCKSホストにはlocalhostを、ポートには9999を配置します。http://whatismyip.orgまたは類似のサイトにアクセスしてテストしてください

(サーバーに対して)localhostでWebページにアクセスしようとしていると述べたので、プロキシの使用からlocalhostおよび127.0.0.1を除外したくない場合があります。もちろん、サーバーのローカルIPを使用することもできます。

私の説明が気に入らない場合、これらのリンクはこれを書いているときに私の記憶を揺さぶった:

http://linux.die.net/man/1/ssh

http://embraceubuntu.com/2006/12/08/ssh-tunnel-socks-proxy-forwarding-secure-browsing/

https://calomel.org/firefox_ssh_proxy.html

パート2

あなたが得たエラーchannel 3: open failed: connect failed: Connection refusedは、sshとはまったく関係ありません。どうやらあなたはいくつかのmysqlのものにアクセスしようとしています。mysqlはデフォルトでsshトンネルからのアクセスをブロックするため、これには追加の課題があります。私はmysqlを実行しないので、これ以降は何について話しているのかわかりません。最後にリンクの関連ビットを引用しているだけです。

/etc/mysql/my.cnfを開き、[mysqld]セクションを探します。「skip-networking」という行が表示されたら、コメント化します。「bind-address = 127.0.0.1」を追加します(もちろん引用符は不要です)。

http://www.debuntu.org/port-forwarding-and-channel-3-open-failed-connect-failed-Connection-refused

パート3

ハビエルのソリューションssh -L 8080:localhost:80 user@remoteserverは、1つの場所へのアクセスが必要な場合に最適です。ローカルホストにアクセスでき、インターネットの残りの部分はそのままになります。ssh -Dを使用した私のソリューションはさらに進み、実際にはすべてのhttp要求をリモートサーバーに転送します。明らかに、これは実際には必要ないかもしれません。しかし、ネットワーク上のすべてのマシンへのhttpアクセスが必要な場合、または自分が有線接続されているネットワークを介してhttpリクエストを送信したくない場合(つまり、スターバックスでのオンラインバンキングです。すべてのトラフィックは移動します。 sshトンネルを経由して自宅のインターネットに接続します。)


Firefoxで「localhost」をリクエストすると、ssh接続を開いたターミナルでエラーが発生しますchannel 3: open failed: connect failed: Connection refused。私はそれを調べる時間はありませんでしたが、おそらくそれが何であるか知っていますか?
ピット

sshのmanページで、-Dオプションを使用するにはrootになる必要があることを確認しました。これは、(セキュリティ上の理由から)rootとしてサーバーに接続できないため、機能しなかった理由です。
ピットヤン

何?トンネルの両端で通常のユーザーとしてこれをずっと使用しました。ああなるほど。80や21のようなポート、または他のIANA予約ポートを使用する場合は、rootである必要があります。1024以上は大丈夫です。エラーはあなたのssh.confが転送をブロックしていることに関係していると思います。私は今、それらの線に沿ってグーグルしています。
djeikyb 2011年

私はあなたのエラーをググって、mysqlがデフォルトでポート転送からのアクセスをブロックするセキュリティ「機能」を持っていると言うこの記事を思いつきました。debuntu.org/...
djeikyb

2

SSHを介したX転送を使用して、サーバーで実行するXアプリケーションがパーソナルコンピューターに表示されるようにすることができます。

  1. SSHでサーバーに接続する場合は、-Xフラグを追加します。たとえば、ssh -X myserver
  2. サーバーにGUIブラウザーをインストールして実行するだけです。X転送とセキュアなSSH接続を介して、出力がパーソナルコンピューターに表示されます。

カーステンが私の質問へのコメントで述べたように、リモートサーバーがローカルネットワークにないことに関して、帯域幅はどうですか?
ピット

帯域幅の要件を定義する必要があります。それが失敗した場合、これを試して、それがどのように機能するかを確認できます。
user4124 2011年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.