Saya perlu mengatur beberapa ssh-tunnels dari skrip shell. Saya sudah mencoba menjalankannya sebagai tugas bg menggunakan:
#!/bin/sh
ssh -L 3000:server1:5029 me@server2 &
ssh -L 3001:server3:3306 me@server2 &
tetapi terowongan tampaknya tidak berfungsi dengan benar ketika saya meluncurkannya seperti itu.
Mereka bekerja dengan baik ketika saya secara manual mengaturnya di tab mereka sendiri, jadi ide saya berikutnya adalah membuat skrip membuka tab baru di Terminal dan menjalankan perintah di sana sebagai proses foreground.
Catatan: pertanyaan ini awalnya "Bagaimana cara meluncurkan tab terminal baru dari shell dan kemudian menjalankan perintah di dalamnya?", Tapi saya mendapat dua jawaban tentang berurusan dengan terowongan. Untuk pertanyaan "opening a shell", saya menemukan ini di SuperUser , yang akan berfungsi, meskipun tab baru di latar belakang lebih disukai daripada jendela latar depan yang dibuka.
sumber
Jawaban:
Secara teknis ini bukan jawaban untuk pertanyaan yang diajukan, melainkan jawaban untuk masalah Anda seperti yang dijelaskan. Perintah ssh memiliki dua sakelar yang mungkin berguna bagi Anda:
memberitahu ssh untuk berkeliaran di latar hanya cukup lama untuk meminta kata sandi yang diperlukan, dan kemudian menempatkan dirinya di latar belakang, tidak menjalankan perintah remote tetapi hanya menangani terowongan.
Jika Anda benar-benar ingin ini muncul di tab maka Anda mungkin menginginkan solusi yang berbeda.
sumber
jobs
juga tidakps
mencantumkan pegangan untuk mereka ....-f
dan latar belakang proses melalui&
pada akhirnya, Anda bisa mendapatkan PID melalui$!
sebagai pegangan untuk membunuh proses terowongan nanti dalam skrip Anda.Saya sarankan hanya mengintegrasikan terowongan Anda ke koneksi "satu untuk apa pun". Anda dapat membuatnya mudah dengan menambahkan entri yang sesuai ke
~/.ssh/config
file Anda :Anda bisa masuk dengan menjalankan:
Terowongan harus muncul dan mulai bekerja, meninggalkan Anda dengan contoh SSH tunggal untuk melakukan "apa pun". Jika Anda perlu membuka koneksi kedua
server2
, Anda mungkin mendapatkan kesalahan, meskipun:Ini tidak menyakiti apa pun selain matamu. Anda juga dapat mengatur maju ini untuk beberapa server dengan menambahkan baris yang sama untuk server lain, dan itu semua akan terjadi secara otomatis.
sumber