Pertanyaan Bagaimana saya bisa keluar dari ssh ketika terkunci?


Saya sering ssh ke dalam kotak saya di rumah dari sekolah, tetapi biasanya ketika saya mengubah kelas dan komputer saya menunda, pipa akan rusak. Namun, ssh hanya terkunci - Ctrl+c, Ctrl+z dan Ctrl+d tidak berpengaruh.

Sangat menjengkelkan untuk me-restart terminal saya, dan bahkan lebih menjengkelkan untuk menutup dan membuat ulang jendela layar baru.

Jadi pertanyaan saya, apakah ada cara mudah untuk membuat ssh mati dengan benar (yaitu ketika pipa gagal "normal" itu akan keluar dengan pesan tentang pipa yang rusak)? Atau apakah saya harus mencari tahu apa PID dan membunuhnya secara manual?


343
2018-03-11 16:22


asal


Jika saya terputus dengan sesi SSH aktif, itu membeku. Saya hanya membunuhnya dan memulai sesi baru. Tidak ada informasi yang hilang karena saya menggunakan layar GNU. - Lekensteyn
Saya juga - layar adalah yang terbaik. Tapi itu masih menyebalkan screen -x : P - Wayne Werner
[mosh] (mosh.mit.edu) adalah alternatif yang rapi untuk menghindari masalah ini. Ini "tetap terhubung" bahkan dengan konektivitas internet intermiten. - jaynp
@ Jaynp Kelemahan saya menggunakan mosh (sejak dua menit yang lalu) adalah saya tidak tahu cara memutuskannya. Saya menggunakan sesi tmux + irssi pada host jarak jauh (sebagai bouncer IRC, semacam) dan saya ingin memutuskan sambungan kadang-kadang (sambil menjaga tmux + irssi berjalan) dan yang saya lakukan dengan <enter> + ~ +. menggunakan SSH tetapi tidak akan berfungsi menggunakan mosh. - Pavel Šimerda


Jawaban:


Kunci normal diteruskan ke atas ssh sesi, sehingga tidak ada yang akan berfungsi. Sebaliknya, gunakan urutan pelarian. Untuk membunuh sesi saat ini memukul selanjutnya Masukkan ↵, ~, ..

Lebih banyak dari urutan pelarian ini dapat dicantumkan bersama Masukkan ↵, ~, ?:

Supported escape sequences:
  ~.  - terminate session
  ~B  - send a BREAK to the remote system
  ~R  - Request rekey (SSH protocol 2 only)
  ~#  - list forwarded connections
  ~?  - this message
  ~~  - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)

Anda dapat menutup daftar urutan Escape dengan menekan memasukkan.

Perhatikan itu karena memukul ~~ penyebab ssh untuk mengirim ~ alih-alih mencegatnya, Anda bisa mengatasinya N bersarang ssh koneksi dengan menekan ~  N waktu. (Ini hanya berlaku untuk ~s yang langsung mengikuti memasukkan.) Artinya demikian memasukkan~~~~~. mengakhiri an ssh sesi 5 lapisan dalam dan terus 4 lainnya utuh.


478
2018-03-11 17:18



Untuk layout keyboard di mana ~ adalah kunci mati, urutan kuncinya adalah Enter  ~  Space  .. - Søren Løvborg
Saya sudah ditambahkan lebih banyak urutan pelarian yang mungkin berguna. :) - gertvdijk
Perhatikan bahwa Anda perlu menghapus tanda komentar pada baris EscapeChar ~ di /etc/ssh/ssh_config (atau ~/.ssh/ssh_config jika kamu memilih). - Aditya M P
@Hitechcomputergeek Enter  ~  ~  . Sejak ~  ~ mengirim literal ~ melalui sesi SSH Anda, sesi SSH kedua akan menerimanya sebagai single tilde dan akan menginterpretasikan . sebagai bagian dari pelarian. Untuk mengirim ke sesi ssh nested ke-5, cukup gunakan 5 tilde dalam urutan pelolosan Anda. - Score_Under
merubah hidup ;) - artm


Anda mungkin juga ingin mengatur level aplikasi keep-alives untuk SSH mencegah dari pembekuan masalah koneksi. Saya ~/.ssh/config mengandung ini:

Host *
ServerAliveInterval 15
# ServerAliveCountMax 3

Hal ini membuat klien ssh mengirim aplikasi-tingkat-tingkat-tetap setiap 15 detik. Setiap kali tiga dari mereka gagal secara berurutan (default dari ServerAliveCountMax), klien menganggap koneksi sebagai menggantung dan menutupnya.

Menentang opsi lainnya TCPKeepAlive, ini dicentang dalam saluran yang dienkripsi dan tidak dapat di-spoof.


Telah dicatat bahwa mereka yang menjaga alive juga membantu, uhm, tetap panjang-pemalasan koneksi hidup, yaitu mencegah Anda dari memiliki setengah tertutup sesi tcp menggantung selama berjam-jam tanpa disentuh.

Saya sangat merekomendasikan untuk mengaktifkan fitur ini jika Anda mengalami hal ini secara rutin, tetapi Anda juga harus tahu tentang risiko keamanan ringan yang mungkin dikenakannya. SEBUAH serangan dikenal-plaintext mungkin menjadi lebih mudah jika penyerang mengetahui interval dan konten dari koneksi idle. Ini mungkin alasan mengapa tidak diaktifkan secara default.


51
2018-03-11 18:51



Alasan keamanan. Anda bisa pergi minum dan meninggalkan sshio membuka dan rekan laboratorium Anda yang telah bekerja dengan Anda dalam 20 tahun terakhir mungkin menggunakan sesi Anda untuk membajak server dan menghancurkannya ... saat Anda minum dalam 10 menit istirahat Anda. - Luis Alvarado♦
@CYREX, eh? Dan bagaimana bisa dimatikan dengan opsi default mencegah Anda memiliki mitra lab yang tidak adil? %) - ulidtko
@ulidtko: Apakah ada alasan untuk tidak menyetel ServerAliveInterval ke 1 sehingga koneksi yang hilang terdeteksi segera? - krlmlr
Saya sudah memperbaiki pos dengan pengetahuan saya tentang itu bersama dengan 'perbaikan' lainnya. Saya kira tidak demikian itu jawablah pertanyaan itu karena lebih kepada mencegah daripada memperbaiki yang sudah rusak. - gertvdijk
@gertvdijk: Terima kasih. Bagi saya, ia bekerja bahkan tanpa Host garis. Juga, "Cipher modern seperti Advanced Encryption Standard saat ini tidak rentan terhadap serangan yang dikenal-plaintext." (dari tautan yang Anda tambahkan) ... - krlmlr


Sebagaimana dicatat dalam jawaban geekosaur, urutan pelarian ~. akan mengakhiri koneksi.

Daftar lengkap urutan pelarian dan apa yang mereka lakukan dapat ditampilkan dengan mengetik ~?:

Supported escape sequences:
  ~.  - terminate connection (and any multiplexed sessions)
  ~B  - send a BREAK to the remote system
  ~C  - open a command line
  ~R  - Request rekey (SSH protocol 2 only)
  ~^Z - suspend ssh
  ~#  - list forwarded connections
  ~&  - background ssh (when waiting for connections to terminate)
  ~?  - this message
  ~~  - send the escape character by typing it twice
(Note that escapes are only recognized immediately after newline.)

39
2018-03-15 06:39



Bagaimana cara menutup daftar urutan pelarian? - kristianp
Anda tidak, setelah itu mencetak daftar urutan pelarian, yang siap untuk menerima yang berikutnya. - Tejas Kale