Cara menentukan alasan pipa SSH rusak

0

Selama minggu lalu, koneksi SSH saya ke instance Amazon EC2 terus terputus

Gagal menulis: Pipa rusak

Membaca melalui beberapa situs, saya berasumsi itu karena tidak ada batas waktu yang ditetapkan jadi saya membuat ~/.ssh/configfile sebagai berikut berdasarkan

### Stop timing out connections
ServerAliveInterval 120  
ServerAliveCountMax 20  

TCPKeepAlive yes

### SSH Connection pooling for faster additional connections to a machine
ControlMaster auto  
ControlPath /tmp/ssh_mux_%h_%p_%r

Host *  
  ControlMaster auto  
  ControlPath ~/.ssh/control/%r@%h:%p  
  ControlPersist 3600  

### Make it so ssh-ing from one server to another passes keys around automagically
Host *
ForwardAgent yes

### Get rid of SSH connection delays
GSSAPIAuthentication no

### Use less encryption on servers I cant get to off-network
Host 10.* 172.* 192.168.*  
Ciphers blowfish-cbc

Pengaturan ini tampaknya tidak berpengaruh, namun saya menyadari bahwa ketika saya tidak di rumah, koneksi tetap menganggur seperti tahun lalu. Saya telah memasukkan contoh pada dua jaringan terpisah selain Wifi rumah saya, jadi saya kira ada sesuatu yang terjadi di rumah dalam dua minggu terakhir untuk mengubah cara kerja koneksi SSH.

Menggunakan Wireshark atau sebaliknya bagaimana saya bisa mengikuti / mendiagnosis apa / di mana masalah untuk pipa SSH yang rusak terjadi di jaringan rumah saya?

Menggunakan

  • Mac OS 10.7.5
  • OpenSSH_5.6p1, OpenSSL 0.9.8r 8 Feb 2011
  • Amazon EC2 AMI t1.micro
phwd
sumber

Jawaban:

1

Periksa pengaturan lokal tetap hidup di mac Anda. Ini milikku ...:

sysctl -a | grep tcp.keep
net.inet.tcp.keepidle: 3600
net.inet.tcp.keepintvl: 150
net.inet.tcp.keepinit: 75000
net.inet.tcp.keepcnt: 8

Saya perlu mengubah pengaturan keepintvl ke beberapa nilai yang lebih tinggi:

sudo sysctl -w net.inet.tcp.keepintvl=7500

Kemudian pesan kesalahan "tulis gagal: Pipa rusak" hilang.

Mike Bretz
sumber
0

Anda tidak menyatakan OS apa yang berjalan pada instance EC2 Anda. Mari kita asumsikan itu adalah varian dari linux.

Hal pertama yang harus Anda lakukan adalah meningkatkan jumlah logging yang disediakan SSHD Anda. Anda memiliki dua cara untuk melakukan ini. Anda bisa mengubah opsi sehingga SSHD selalu dimulai dengan bendera debug, atau Anda bisa memulai contoh lain pada port non-standar. Either way, rahasia untuk mendapatkan hasil debug adalah dengan menggunakan -d. Dari halaman manual pada server Mint (varian Ubuntu)

-d Mode debug. Server mengirimkan output debug verbose ke kesalahan standar, dan tidak menempatkan dirinya di latar belakang. Server juga tidak akan melakukan fork dan hanya akan memproses satu koneksi. Opsi ini hanya dimaksudkan untuk debugging untuk server. Opsi -d ganda meningkatkan level debugging. Maksimal 3.

Dari klien Anda, Anda dapat menggunakan opsi verbose untuk ssh KE server, seperti ssh -vvv [email protected] -p port yang Anda gunakan untuk sshd Anda.

Satu hal lagi yang saya sarankan adalah untuk menyingkirkan sebagian besar item dalam file konfigurasi Anda, hanya untuk memastikan Anda tidak menambah masalah.

Tidak satu pun dari hal-hal ini adalah jawaban, tetapi mereka bisa membuat Anda lebih dekat dengan satu.

Greg Cain
sumber