バックグラウンドでのSSHトンネル


17

sshトンネル接続が正しく実行されることを期待するプロセスがあり、次のコマンドを使用しています。

ssh -L localhost:3306:127.0.0.1:3306 username@<mysql-machine-ip-address> -N &

私はこれを8か月間正常に実行しました。最近、ホスティングプロバイダーはハードウェアを変更してマシンを更新する必要があり、Ubuntuの新しいカーネルでマシンをアップグレードしました。4.8.3-x86_64-linode76から4.8.6-x86_64-linode78になりました。

一連のトラブルシューティングの後、コマンドを次のように更新する必要があります。

ssh -L localhost:3306:127.0.0.1:3306 username@<mysql-machine-ip-address> -fN

sshドキュメントを調査するとき-fパラメータ

コマンドの実行直前にバックグラウンドに移動するようにsshに要求します。これは、sshがパスワードまたはパスフレーズを要求するが、ユーザーがバックグラウンドでそれを望んでいる場合に役立ちます。これは、-nを意味します。リモートサイトでX11プログラムを開始するための推奨される方法は、ssh -f host xtermのようなものです。

「&」のbashコマンドを調べるとき

プロセスをバックグラウンドに配置します(「UNIXオペレーティングシステムの中間的な使用」のマルチタスクを参照)。

これらの2つのコマンドに基本的に違いはありますか?

回答:


22

はいあります。最初からバックグラウンドでssh &実行さsshれます。フォアグラウンドでssh -f開始sshし、パスワードなどのプロンプトを表示できるようにします。その後ssh、要求されたコマンドを実行する直前に自分自身をバックグラウンドに配置します。


新しいサーバーで、なぜssh&ではなくssh -fを使用する必要があるのか​​について、何か手がかりはありますか。それに加えて、ssh -fがより良いアプローチであるように思えますが、それに同意しますか?
develop4fun2011

たぶん、新しいシステムには新しい(または単に異なる)sshクライアントがありますか?
AlexP 16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.