SSH:SSHサーバーにシェルトンネルがありません。

SSH:SSHサーバーにシェルトンネルがありません。

2つのホスト間にトンネルを確立する必要があります。

これを行うには、ssh次の方法を使用します。

ssh -L MY_LOCAL_PORT:FOREIGN_ADDRESS:FOREIGN_PORT MYUSER@SSH_SERVER

次にSSH_SERVERにログインします。

この機能を回避するにはどうすればよいですか? !トンネルを建設するだけです。 SSH_SERVERにログインする必要はありません...

-N オプションを試しましたが、これによりシェルが非常に忙しくなりました。

答え1

他の記事で述べたように、リモートホストにメッセージが表示されないようにするには、-NSSHオプションを使用する必要があります。ただし、これによりSSHが自動的に実行され、シェルが使用されます。

SSHをバックグラウンドジョブとして使用し、次の&記号を使用できます。

ssh -N -L 8080:ww.xx.yy.zz:80 user@server &

これにより、バックグラウンドでSSHトンネルが開始されます。ただし、特に非受信ポートに接続しようとすると(サーバーのApacheが起動していない場合)、いくつかのメッセージが表示されることがあります。他の操作を実行するときにシェルがこれらのメッセージを生成しないようにするには、STDOUT / STDERRを大きなスペースにリダイレクトできます。

ssh -N -L 8080:ww.xx.yy.zz:80 user@server >/dev/null 2>&1 & 

SSHをお楽しみください。

答え2

-f -Nあなたが探しているものです:

ssh -f -N -L MY_LOCAL_PORT:FOREIGN_ADDRESS:FOREIGN_PORT MYUSER@SSH_SERVER

~からsshマニュアルページ:

- Fコマンドが実行される前にSSHにバックグラウンドに入るように要求します。これはsshにパスワードやパスフレーズが必要ですが、ユーザーがそれをバックグラウンドで実行したい場合に便利です。これは意味する-N

-Nリモートコマンドを実行しないでください。これはポートのみを転送するのに役立ちます(プロトコルバージョン2のみ)。

-N標準入力をリダイレクトします/dev/null(実際には標準入力から読み取ることを防ぎます)。sshこの機能はバックグラウンドで実行するときに使用する必要があります。

答え3

これは、SSHを使用してリモートコンピュータから静的IPアドレスを持たないコンピュータに接続した経験です。静的IPを持たないサーバーでプロジェクトを管理するために必要です(LANでサービスを提供)。

設定とデモ要件:

  • Linuxで静的IPを使用するSSHサーバー(boss.comと呼ばれる)
  • LinuxにはSSH / Webサーバー用の静的IPはありません。 (目標と呼んでください)
  • JuiceSSHを使用したLinux/Android携帯電話

以下があることを確認してください/etc/ssh/sshd_config
GatewayPorts yes

boss.com:1008をターゲットのURLとして使用するには、ターゲットマシンで次のコマンドを実行します。

ssh -R 1008:127.0.0.1:80 [email protected]

これで、すべてのデバイスでターゲットWebサーバーをboot.com:1008に設定できるようになりました(モバイルデバイスでブラウザを試してみてください)。

ターゲットコンピュータで次のコマンドを実行して、SSH(ポート2048)を介してターゲットコンピュータに接続します。

ssh -R 1008:127.0.0.1:2048 [email protected]

これで、次のコマンドを使用してターゲットマシンを超えることができます。

ssh [email protected]:1008

または、Android携帯電話でJuiceSSHを使用してテストしてください。

サーバーにアクセスするためにルートパスワードを使用するのは良い考えではありません。

Create user mytunnel in boss.com
replace root with mytunnel in above examples

最後に、mytunnelユーザーがboss.comを介してのみトンネリングできるようにするには、次の作業を行います。

  • boss.com の /etc/passwd で mytunnel シェルを /bin/bash から /bin/false に置き換えます。

  • 上記のコマンドに-f -Nを追加してください。
    ssh -f -N -R 1008:127.0.0.1:80 [email protected]
    ssh -f -N -R 1008:127.0.0.1:2048 [email protected]

  • 今、ユーザー私のトンネルサーバーのSSHトンネル機能のみを使用できます。

関連情報