Saya dulu ssh -L 10002:192.168.0.30:10002 192.168.1.135
membangun port forwarding tetapi sekarang saya harus menghapusnya.
Bagaimana saya melakukan ini?
Saya dulu ssh -L 10002:192.168.0.30:10002 192.168.1.135
membangun port forwarding tetapi sekarang saya harus menghapusnya.
Bagaimana saya melakukan ini?
Jawaban:
Jika Anda menggunakan Linux, Anda dapat mematikan proses dengan:
ps aux | grep ssh
dan kemudian gunakan
kill <id>
Untuk membunuh prosesnya.
Jika perintah kill tidak berhasil, Anda dapat mencoba
kill -9 <id>
kill -9
sampai setelah Anda sudah mencoba hanya kill
. Banyak proses akan memiliki penangan sinyal yang akan membersihkan penggunaan sumber daya mereka, dengan bersih menutup koneksi dan tugas pra-shutdown lainnya. Jika Anda membunuh dengan -9, proses mati segera tanpa melakukan pembersihan. Membunuh tanpa -9 akan berhasil sebagian besar waktu.
kill -9
tanpa alasan seperti menggunakan senapan untuk membunuh nyamuk. :)
pgrep ssh | xargs kill
. Jangan gunakan -9
apa-apa
ssh
perintah, atau bahwa semua ssh
perintah yang Anda jalankan baik-baik saja untuk dimatikan. Ini bukan asumsi umum yang bagus.
ssh
instance di beberapa server jarak jauh sepanjang waktu, beberapa di antaranya tanpa keterlibatan aktif langsung saya. Sebagai contoh, mode Emacs Tramp membuka ssh
koneksi di belakang layar ketika saya mengunjungi buffer jarak jauh. Beberapa orang menggunakan filesystem userspace yang melakukan hal serupa. Sama sekali tidak jarang. Bahkan, saya akan menganggap pengguna tunggal, satu ssh
contoh menjadi kasus penggunaan pinggiran minoritas. Jika itu bekerja untuk Anda, bagus untuk Anda, tetapi itu bukan saran umum yang baik.
Saat menggunakan ssh multiplexing, mematikan proses ssh seringkali tidak diinginkan (ini membunuh semua koneksi terbuka dengan host itu), dan Anda tidak dapat dengan mudah mengakses escape karena "escape tidak tersedia untuk sesi multiplexed". Cara yang benar adalah dengan menjalankan analog dari perintah penerusan yang ingin Anda batalkan, tetapi menambahkan -O cancel
. Misalnya:
ssh -O cancel -L 10002:192.168.0.30:10002 192.168.1.135
Ini akan menonaktifkan penerusan port ini tanpa mengakhiri sesi. Sekali lagi, ini hanya akan berfungsi jika ssh multiplexing digunakan untuk koneksi ke 192.168.1.135 .
ssh -O exit 192.168.1.135
.
Cara membatalkan port yang diteruskan dalam sesi SSH yang sudah berjalan:
-KL port
Anda harus melihat ini:
ssh> -KL 10002
Canceled forwarding.
Anda bisa menggunakan "escape-key" (biasanya ~) diikuti oleh C untuk mendapatkan cli ke koneksi Anda. Dari sana Anda dapat menghapus terowongan tanpa menurunkan koneksi Anda.
Anda dapat memasuki konsol interaktif dengan mengetik ~C( huruf besar "C"). Ini memungkinkan Anda secara dinamis menambah dan menghapus penerusan port (di antara beberapa hal lainnya).
Urutan ini harus datang tepat setelah carriage return / newline. Jadi ragu, ketikkan saja Enter~C(secara berurutan).
Jika Anda tidak melihat karakter muncul di konsol, Anda melakukannya dengan benar :)
Anda sekarang akan melihat ssh>
prompt.
Untuk menghapus port, cukup masukkan -KL 10002
diikuti oleh Enter(di mana 10002
port diteruskan Anda).
Kebalikannya - menambahkan penyerang baru - dapat dilakukan seperti ini (dari awal hingga selesai):
Enter~C
ssh> -L 10002:192.168.0.30:10002
Enter
~C escape not available to multiplexed sessions
. Jika itu masalahnya, lihat jawaban luar biasa a3nm.
Warning: remote port forwarding failed for listen port
pesan.