Bagaimana cara ssh pada koneksi yang lambat / goyah?

20

Saya berurusan dengan koneksi shell yang sangat lambat. Itu ada di cloud dan saya sangat jauh dari server. Koneksi saya juga kadang-kadang putus karena melalui internet dan saya mungkin juga menggunakan Wifi bersama atau 3G. Apakah ada cara untuk melihat apa yang saya ketik secara instan? Mencoba mengetik perintah dan menunggu setiap karakter mengerikan.

Zombie
sumber
4
Gunakan "layar" untuk menjaga sesi Anda tetap hidup, sehingga Anda dapat terhubung kembali ketika Anda memutuskan sambungan.
Konerak

Jawaban:

24

Coba Mosh .


Aplikasi terminal jarak jauh Mosh (mobile shell) yang memungkinkan roaming, mendukung konektivitas terputus-putus, dan menyediakan gema lokal yang cerdas dan pengeditan garis penekanan tombol pengguna.

Mosh adalah pengganti SSH. Ini lebih kuat dan responsif, terutama melalui Wi-Fi, seluler, dan sambungan jarak jauh.

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

dmourati
sumber
3
Peringatan untuk mosh: (1) itu jauh lebih intensif cpu daripada ssh. (2) Jika sesi mosh Anda tidak berakhir secara normal, Anda akan memiliki koneksi bocor yang tidak pernah dapat dibangun kembali. (Saya harus membersihkan kotak shell saya kalau tidak akan ada puluhan proses yang berjalan).
user606723
Masalah lain adalah hampir tidak mungkin untuk menginstal di distro linux seperti Suse (SLES). Saya menghabiskan berjam-jam mencoba menginstalnya baik sebagai paket openSuse atau mengkompilasinya dari sumber.
Zombi
$ sudo zypper dalam mosh (menurut dokumen)
dmourati
Ya itu akan bekerja dengan baik pada openSuse, tetapi distro perusahaan / tertutup sangat bertugas untuk menginstal proyek open source baru.
Zombi
10

alternatif (dan juga sebagai tambahan) untuk jawaban dmourati: gunakan screenatau tmuxatau hal-hal lain, untuk menjaga sesi tetap hidup ketika Anda terputus. (Anda cukup melampirkan kembali sesi setelah Anda terhubung kembali, dan melihat terminal ketika Anda meninggalkannya, bahkan dengan program layar penuh [vi, dll]). Ini juga memiliki banyak manfaat lainnya (sesi berbagi dengan rekan kerja, dll) (seperti dalam faq Mosh sendiri menyatakan:

T: Mengapa buffer scrollback terminal saya tidak lengkap?

Mosh 1.2 hanya menyinkronkan keadaan terminal yang terlihat. Mosh 1.3 akan memiliki dukungan scrollback lengkap; lihat masalah ini dan yang lainnya yang terhubung dari sana. Untuk saat ini, solusinya adalah menggunakan layar atau tmux di sisi jarak jauh.

Dan Anda juga harus menggunakan rsyncuntuk menyalin file, tanpa harus mengirim ulang bagian yang sudah dikirim melalui jaringan ketika koneksi mati.

Olivier Dulac
sumber
2

Anda harus melihat di mana latensi / bottleneck berada. Anda harus mencoba untuk mendapatkan akses yang lebih baik ke infrastruktur ... baik secara lokal atau di pihak penyedia. Anda memasukkan sesi penting atau kritis Anda dalam tmuxatau screenmultiplexer ...

Tolong beri kami nomor. Dibutuhkan koneksi yang sangat buruk untuk sesi SSH sederhana untuk memiliki masalah ... Saya harus mengakses sistem di sisi lain dunia dari pesawat terbang melalui VPN dan masih belum mengalami banyak masalah. Apakah ini masalah yang terus-menerus? Apa yang traceroutememberitahu Anda?

putih
sumber
Masalahnya terjadi pada wifi hotel banyak, di mana ada terlalu sedikit router dan terlalu banyak perangkat / laptop berbagi akses internet. Juga berbagi wifi hotel secara inheren sangat payah dengan waktu ping karena melalui 1 dinding atau lebih benar-benar menambahkan banyak penundaan ms. Itu juga merupakan hambatan besar lainnya. Situasi serupa terjadi pada 3G, di mana jarak yang jauh ke menara ponsel menambah MS. Saat menggunakan cangkang SSH, saya harus menunggu setiap karakter. MS 200-400 bisa sangat menjengkelkan, tetapi dengan lonjakan hingga 1 detik ... aduh.
Zombi
1

Untuk pembaca masa depan utas ini, tip @lowellheddings di blog - nya , bersama dengan penggunaan layar , dapat membantu mengatasi masalah ini:

Anda dapat mengonfigurasi ssh client untuk secara otomatis mengirim kode kode larangan-masuk setiap beberapa detik sehingga server tidak akan memutuskan koneksi Anda. Pengaturan ini kadang-kadang disebut sebagai Keep-Alive atau Stop-Disconnecting-So-Much di klien lain.
Tambahkan baris berikut ke file / etc / ssh / ssh_config:
ServerAliveInterval 60
...

Snidhi Sofpro
sumber