GNU/Linux >> Belajar Linux >  >> Linux

Cara menghubungkan kembali ke sesi ssh yang terputus

Solusi 1:

Coba atur ClientAliveInterval (mis. 60) dan TCPKeepAlive (ya atau tidak) ke nilai yang sesuai di sisi server sshd.conf .

Ini akan membuat sesi Anda tetap hidup meskipun koneksi terputus selama beberapa menit.

Solusi 2:

PEMBARUAN:Untuk jawaban sebenarnya, lihat jawaban zero_r di bawah

Ini bukan jawaban, tetapi solusi. Gunakan layar.

Saat pertama kali masuk, jalankan layar. Anda mendapatkan shell lain, jalankan perintah di dalamnya. Jika Anda terputus, proses layar menjaga terminal tetap hidup sehingga shell Anda dan proses yang dijalankannya tidak jatuh. Saat Anda terhubung kembali, jalankan 'screen -r' untuk melanjutkan.

Ada banyak hal lain untuk mengonfigurasi dan menggunakan layar, tetapi hal di atas akan mengatasi masalah Anda.

Solusi 3:

Seperti disebutkan di atas, Layar GNU adalah caranya. Ini akan memungkinkan Anda untuk memiliki 'sesi layar' pada kotak jarak jauh tempat Anda dapat menjalankan banyak perintah, melalui beberapa 'jendela layar'. Ini hanya akan terlepas jika koneksi SSH induk Anda mati, membuat semua subproses tetap berjalan di dalamnya dengan baik.

'man screen ' adalah teman Anda seperti biasa, dan paket OS harus disebut 'screen ' jika tidak diinstal secara default.

Dasar-dasarnya adalah:

  • Mulai sesi layar (di host jarak jauh Anda):

    $ screen
    
  • Putuskan sambungan dari sesi layar Anda:CTRL-A , d

  • Sambungkan kembali ke sesi layar Anda setelah masuk kembali:

    $ screen -d -r
    
  • Buka 'jendela' layar lain:CTRL-A , c

  • Menggilir jendela layar terbuka Anda:CTRL-A , spasi

Ada banyak hal-hal keren yang dapat Anda lakukan dengan Layar. Saya telah menggunakannya selama lebih dari 10 tahun, dan masih menemukan fitur-fitur baru. Ini utilitas Unix favorit saya.

Solusi 4:

Saya tidak percaya tidak ada yang menyebutkan MOSH;

Mosh adalah protokol terpisah yang dapat terhubung ke proses login SSH, ini membuat sesi Anda tetap hidup setelah berhari-hari terputus, mengubah IP, latensi tinggi, dan sebagainya. Itu dijelaskan di beranda lebih baik daripada yang bisa saya jelaskan jadi saya telah menyalin deskripsi di bawah ini. Pengalaman dan saran saya adalah saya menggunakannya di ponsel Android saya, ini adalah penyelamat hidup saat bepergian dan SSH. Hal yang sama berlaku pada laptop saya saat ditambatkan dengan ponsel di kereta misalnya. Saya merekomendasikan kompilasi dari sumber untuk mendapatkan versi terbaru, versi repo untuk saya di dalam Ubuntu memiliki beberapa gangguan di dalamnya yang diperbaiki di versi terbaru (pada saat penulisan).

Mosh (cangkang seluler)

Aplikasi terminal jarak jauh yang memungkinkan roaming, mendukung konektivitas intermiten, dan menyediakan gema lokal yang cerdas dan pengeditan garis penekanan tombol pengguna.

Mosh adalah pengganti SSH. Lebih tangguh dan responsif, terutama melalui Wi-Fi, seluler, dan tautan jarak jauh.

Mosh adalah perangkat lunak gratis, tersedia untuk GNU/Linux, FreeBSD, Solaris, MacOS X, dan Android.

Fitur dari situs web:

  • Ubah IP. Tetap terhubung :Mosh secara otomatis menjelajah saat Anda berpindah antar koneksi Internet. Gunakan Wi-Fi di kereta, Ethernet di hotel, dan LTE di pantai:Anda akan tetap masuk. Sebagian besar program jaringan kehilangan koneksinya setelah roaming, termasuk SSH dan aplikasi Web seperti Gmail. Mosh berbeda.

  • Membuat mimpi indah :Dengan Mosh, Anda dapat menidurkan laptop dan membangunkannya nanti, menjaga koneksi Anda tetap utuh. Jika koneksi Internet Anda terputus, Mosh akan memperingatkan Anda — tetapi koneksi dilanjutkan saat layanan jaringan kembali.

  • Singkirkan kelambatan jaringan :SSH menunggu balasan dari server sebelum menampilkan pengetikan Anda sendiri. Itu bisa membuat antarmuka pengguna yang buruk. Mosh berbeda:ini memberikan respons instan untuk mengetik, menghapus, dan mengedit baris. Itu melakukan ini secara adaptif dan bekerja bahkan dalam program layar penuh seperti emacs dan vim. Pada koneksi yang buruk, prediksi yang luar biasa digarisbawahi sehingga Anda tidak akan disesatkan.

  • Tidak ada kode istimewa. Tidak ada daemon :Anda tidak perlu menjadi superuser untuk menginstal atau menjalankan Mosh. Klien dan server dapat dieksekusi yang dijalankan oleh pengguna biasa dan hanya bertahan selama masa koneksi.

  • Metode masuk yang sama :Mosh tidak mendengarkan port jaringan atau mengautentikasi pengguna. Klien mosh masuk ke server melalui SSH, dan pengguna menunjukkan kredensial yang sama (misalnya, kata sandi, kunci publik) seperti sebelumnya. Kemudian Mosh menjalankan mosh-server dari jarak jauh dan menghubungkannya melalui UDP.

  • Berjalan di dalam terminal Anda, tetapi lebih baik :Mosh adalah program baris perintah, seperti ssh. Anda dapat menggunakannya di dalam xterm, gnome-terminal, urxvt, Terminal.app, iTerm, emacs, screen, atau tmux. Tapi mosh dirancang dari awal dan hanya mendukung satu rangkaian karakter:UTF-8. Ini memperbaiki bug Unicode di terminal lain dan di SSH.

  • Control-C berfungsi dengan baik :Tidak seperti SSH, protokol berbasis UDP mosh menangani kehilangan paket dengan baik, dan menetapkan frekuensi gambar berdasarkan kondisi jaringan. Mosh tidak mengisi buffer jaringan, jadi Control-C
    selalu bekerja untuk menghentikan proses pelarian.

Solusi 5:

autossh mengawasi koneksi Anda dan jika terputus, koneksi kembali. Ini lebih dapat diandalkan daripada keepalives. Jika Anda terhubung ke sesi layar, Anda akan melanjutkan langsung dari tempat Anda terputus (lihat rscreen yang disertakan dengan autossh)


Linux
  1. Cara mengirim data ke clipboard lokal dari sesi SSH jarak jauh

  2. Bagaimana cara menetapkan nama untuk layar?

  3. Bagaimana saya bisa keluar dari sesi SSH jarak jauh yang terbuka?

  1. Bagaimana cara mengakhiri koneksi SSH yang tidak responsif di linux?

  2. Bagaimana Memulihkan / Membunuh Sesi Ssh Setelah Kehilangan Koneksi?

  3. Ganti nama sesi layar

  1. Ssh – Bagaimana Cara Membuat Proses yang Saya Mulai Selama Sesi Ssh Berjalan Setelah Sesi Berakhir??

  2. Linux – Bagaimana Cara Menghubungkan Kembali Perangkat Usb yang Terputus Secara Logis?

  3. Bagaimana cara menghentikan proses layar di linux?