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つのコマンドには基本的に違いがありますか?
はいあります。 ssh &
は最初からssh
をバックグラウンドで実行します。 ssh -f
はフォアグラウンドでssh
を開始し、パスワードなどのプロンプトを表示できるようにします。その後、要求されたコマンドを実行する直前にssh
がバックグラウンドに置かれます。