it-swarm-id.com

Apa arti dari pesan Pipa Rusak dalam sesi SSH?

Terkadang sesi SSH saya terputus dengan Write failed: Broken pipe pesan. Apa artinya? Dan bagaimana saya bisa menjaga sesi saya tetap terbuka?

Saya tahu tentang screen, tapi itu bukan jawaban yang saya cari. Saya pikir ini adalah opsi konfigurasi sshd.

107
Peter Stuifzand

Mungkin server Anda terlalu lama menutup koneksi yang tidak digunakan. Anda dapat memperbarui klien Anda (ServerAliveInterval) atau server Anda (ClientAliveInterval)

 ServerAliveInterval
         Sets a timeout interval in seconds after which if no data has
         been received from the server, ssh(1) will send a message through
         the encrypted channel to request a response from the server.  The
         default is 0, indicating that these messages will not be sent to
         the server.  This option applies to protocol version 2 only.

 ClientAliveInterval
         Sets a timeout interval in seconds after which if no data has
         been received from the client, sshd(8) will send a message
         through the encrypted channel to request a response from the
         client.  The default is 0, indicating that these messages will
         not be sent to the client.  This option applies to protocol
         version 2 only.

Untuk memperbarui server Anda (dan mulai ulang sshd Anda)

echo "ClientAliveInterval 60" | Sudo tee -a /etc/ssh/sshd_config

Atau sisi klien:

echo "ServerAliveInterval 60" >> ~/.ssh/config 
92
Gert

Solusi alternatif adalah menggunakan mosh - Shell seluler . Berbeda dengan ssh ia terhubung melalui UDP dan mendukung roaming. Anda dapat memulai sesi di rumah, menangguhkan laptop Anda, membawanya ke kantor/teman/di mana pun Anda memiliki internet, membatalkan pengeluaran laptop Anda dan terus bekerja seolah-olah tidak ada yang terjadi. Ini sangat berguna jika Anda berada di koneksi internet yang buruk: Ini menunjukkan umpan balik instan jika penekanan tombol Anda tidak mencapai server dan terus-menerus mencoba membangun kembali koneksi.

Instalasi dan pengaturannya sederhana: Sekarang sudah termasuk dalam semua distribusi Linux saat ini (ditambah beberapa non-Linux) dan mengoordinasi inisialisasi sesi dan otentikasi melalui koneksi ssh sebelumnya. Jadi jika Anda dapat terhubung melalui ssh [email protected] Anda sangat mungkin dapat terhubung dengan mosh hanya dengan menelepon mosh [email protected], jika paket mosh diinstal pada kedua ujungnya.

Alasan utama kegagalan koneksi adalah Anda harus mencapai server pada port UDP (kisaran default: 60000-61000) agar mosh berfungsi. Jadi, jika server berada di belakang firewall, Anda sebagian besar kurang beruntung jika tidak dapat membuat lubang sendiri ( implikasi keamanan ).

6
Perseids

Jika Anda ingin memiliki periode koneksi yang lebih lama, di klien tambahkan:

echo 'ServerAliveInterval 30' | tee -a ~/.ssh/config
echo 'ServerAliveCountMax 1200' | tee -a ~/.ssh/config

ServerAliveCountMax secara default ini diatur ke 3. Oleh karena itu setelah ServerAliveInterval telah mengirim 3 paket kecil info ke server Anda, maka ia akan logout secara otomatis. Pengaturan ke 1200 berarti proses ini harus terjadi setidaknya 1200 kali. Singkatnya, Anda harus terhubung setidaknya 30 * 1200 detik (10 jam).

5
Francisco Costa

Biasanya berarti koneksi jaringan (TCP) Anda telah diatur ulang. Misalnya. penyedia internet Anda menghubungkan kembali Anda atau sesuatu seperti ini.

2
maxschlepzig

Saya memiliki masalah yang sama tetapi tidak seperti yang diharapkan. Jika Anda menemukan bahwa di jaringan yang sama server lain sedang mencoba untuk alamat IP yang sama, Anda akan menghadapi masalah yang sama. Untuk mengatasi ini, Anda perlu memeriksa apakah ada server lain yang menggunakan alamat IP yang sama. Ini dapat dilakukan dengan menggunakan perintah arp.

Saya menggunakan Debian jadi di sini adalah contoh dari perintah yang saya gunakan untuk menentukan apakah server lain memang menggunakan alamat IP yang sama

apt-get install arp-scan
arp-scan -I eth0 -l | grep 192.168.1.42
  192.168.1.42 d4:eb:9a:f2:11:a1 (Unknown)
  192.168.1.42 f4:23:a4:38:b5:76 (Unknown) (DUP: 2)

Anda akan melihat dua set alamat mac menggunakan alamat IP yang sama. Hindari konflik dengan mengatur satu ke alamat IP lainnya.

1
Bill Ang

Penyebab lain untuk "Pesan Pipa Rusak" adalah bahwa mesin lain sedang mencoba menggunakan IP yang sama dengan Host Anda.

Cara sederhana untuk menguji apakah orang lain menggunakan IP itu:

  1. Matikan Host Anda
  2. ping IP yang sama untuk melihat apakah mesin lain menggunakan IP itu

Untuk mengetahui mesin mana yang ada di jaringan Anda, Anda dapat menggunakan judul pertanyaan Unix & Linux ini: Cara menemukan mesin lain yang terhubung ke jaringan lokal .

0
Josir