Terowongan SSH di latar belakang

17

Saya memiliki proses yang mengharapkan koneksi terowongan ssh untuk mengeksekusi dengan benar dan saya telah menggunakan perintah berikut:

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

Saya telah menjalankan ini dengan sukses selama 8 bulan, baru-baru ini penyedia hosting kami harus membuat perubahan perangkat keras untuk memperbarui mesin kami, dan memutakhirkan mesin kami dengan kernel baru untuk Ubuntu. Mulai dari 4.8.3-x86_64-linode76 ke 4.8.6-x86_64-linode78.

Setelah banyak masalah, kami harus memperbarui perintah untuk ini:

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

Saat meneliti dokumentasi ssh, parameter -f

Meminta ssh untuk pergi ke latar belakang sebelum eksekusi perintah. Ini berguna jika ssh akan meminta kata sandi atau frasa sandi, tetapi pengguna menginginkannya di latar belakang. Ini menyiratkan -n. Cara yang disarankan untuk memulai program X11 di situs jarak jauh adalah dengan sesuatu seperti ssh -f host xterm.

Saat meneliti perintah bash untuk "&"

Tempatkan proses di latar belakang (lihat multitasking dalam "Penggunaan Antara> Sistem Operasi UNIX").

Apakah ada perbedaan mendasar pada kedua perintah ini?

mengembangkan4fun2011
sumber

Jawaban:

22

Ya ada. ssh &berjalan sshdi latar belakang dari awal. ssh -fdimulai sshdi latar depan, memungkinkannya untuk meminta kata sandi dll, dan hanya setelah itu sshmenempatkan dirinya di latar belakang sebelum menjalankan perintah yang diminta.

AlexP
sumber
apakah Anda memiliki petunjuk mengapa dengan server baru saya akan dipaksa untuk menggunakan ssh -f daripada ssh &. Selain itu, kedengarannya seolah-olah ssh -f adalah pendekatan yang lebih baik, apakah Anda setuju untuk itu?
develop4fun2011
Mungkin sistem baru memiliki klien ssh yang lebih baru (atau hanya berbeda)?
AlexP