OpenSSH: Niska prędkość pisania w pseudo terminalu

3

Aktualizacje

  • Zawęziłem to do występowania tylko w sieci bezprzewodowej w pracy. Z domu nie doświadczam opóźnień / opóźnień
  • Wydaje się również, że po „intensywnym” użyciu SSH i tunelowaniu przez jedną lub dwie maszyny, sieć całkowicie mnie upuszcza i jestem zmuszony ręcznie połączyć się ponownie
  • Patrząc na Wireshark przechwytuje z sesji SSH z OpenSSH kontra jsch, wydaje się, że OpenSSH ma kilka TCP Dup Ack, TCP Retransmissioni TCP Spurious Retransmissionpakietów. Ale te powinny się załatwić, ponieważ są TCP ..

Problem

Ostatnio, kiedy łączyłem się ze zdalnymi maszynami za pomocą SSH, zauważyłem, że istnieje wyraźne opóźnienie około 1 sekundy między mną, pisząc coś a faktycznie pojawiającymi się postaciami. Jeśli przytrzymam klawisze, pojawią się one w „partiach” około 20 znaków w odstępach ~ 1 sekundy.

Szczegóły systemu

$ ssh -V
    OpenSSH_7.2p2 Ubuntu-4ubuntu1, OpenSSL 1.0.2g-fips  1 Mar 2016        
$ echo $ SHELL $ TERMIN $ WYŚWIETLACZ
    / bin / zsh xterm-256color: 0
$ uname -r; cat / proc / version
    4.4.0-22-ogólny
    Wersja Linux 4.4.0-22-generic (buildd @ lgw01-41) (gcc wersja 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2)) # 40-Ubuntu SMP czw. 12 maja 22:03:46 UTC 2016

Spostrzeżenia

Dziwną obserwacją jest to, że opóźnienie występuje tylko wtedy, gdy nastąpi alokacja pseudo terminala (tj. Domyślna lub opcja -t). Kiedy pseudo terminal jest wymuszony wyłączony, mogę pisać polecenia i otrzymywać ich dane wyjściowe bez opóźnień.

  • Mój plik ~ / .ssh / config zawiera tylko „zwykłe wpisy w następującym formacie:
Nazwa gospodarza
    Nazwa hosta 192.168.1.0
    Użytkownik
    IdentityFile ~ / .ssh / id_rsa
  • Nie ma opóźnienia, gdy jawnie wyłączę pseudo terminal (tj. Używając opcji -T)
  • Zmiana ustawień wymienionych w podobnych pytaniach nie rozwiązuje problemu
  • IntelliJ Idea Ultimate Edition może tworzyć połączenia SSH, które nie mają tego problemu. IDE uruchamia klienta Java SSH JSch
    • Przekonało mnie to, że jest to problem lokalny i prawdopodobnie nie jest związany z moim interfejsem sieciowym
  • Moi współpracownicy w tej samej sieci nie mają tego problemu, chociaż używają Macbooków

Co próbowałem

  • Włączanie kompresji, wyłączanie przekazywania X11, różne metody przyspieszenia procesu logowania
  • SSH do lokalnego hosta (tutaj nie ma opóźnienia / opóźnienia )
  • SSHing do różnych maszyn (tj. Nie tylko jednego) - występuje opóźnienie
  • Pobranie najnowszej stabilnej wersji OpenSSH i zbudowanie jej dla mojego systemu
    • Świeżo skompilowany plik binarny ma ten sam problem , co prowadzi mnie do wniosku, że jest on spowodowany przez niektóre błędne konfiguracje
  • Zapewnienie, że mój plik / etc / ssh / ssh_config wygląda „normalnie”
    • Na wszelki wypadek zamieściłem go na końcu wpisu
  • Czyszczenie SSH i ponowna instalacja przy użyciu apt-get
  • Przechodzę do wirtualnego TTY (myślę, że tak się nazywają ...) za pomocą Ctrl + Alt + F {1-6} i stamtąd SSHing
  • Ponowne uruchomienie
  • Przełączanie do innej sieci
    • Opóźnienie / opóźnienie wydaje się być tylko problemem w sieci w pracy. W domu nie ma zauważalnego opóźnienia / opóźnienia
  • Kilka innych rzeczy, o których zapominam

tl; dr

Moje binarne / config / coś SSH wydaje się mieć opóźnienie podczas pisania i próbowałem wielu rzeczy bez powodzenia. Może to coś z bufora postaci? Kto wie! Mam nadzieję, że tak.

ssh -vvv

OpenSSH_7.2p2 Ubuntu-4ubuntu1, OpenSSL 1.0.2g-fips 1 marca 2016
debug1: odczyt danych konfiguracyjnych /home/redacted/.ssh/config
debug1: /home/redacted/.ssh/config wiersz 6: Stosowanie opcji dla ops1
debug1: odczyt danych konfiguracyjnych / etc / ssh / ssh_config
debug1: / etc / ssh / ssh_config wiersz 19: Stosowanie opcji dla *
debug2: rozwiązanie portu „xx.xx.xx.xx” 22
debug2: ssh_connect_direct: needpriv 0
debug1: Podłączanie do portu xx.xx.xx.xx [xx.xx.xx.xx] 22.
debug1: Połączenie ustanowione.
debug1: plik tożsamości /home/redacted/.ssh/id_rsa typ 1
debug1: key_load_public: Brak takiego pliku lub katalogu
debug1: plik tożsamości /home/redacted/.ssh/id_rsa-cert typ -1
debug1: Włączanie trybu zgodności dla protokołu 2.0
debug1: Ciąg wersji lokalnej SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu1
debug1: Zdalny protokół w wersji 2.0, zdalna wersja oprogramowania OpenSSH_5.3
debug1: dopasowanie: OpenSSH_5.3 pat OpenSSH_5 * zgodny 0x0c000000
debug2: fd 3 ustawienie O_NONBLOCK
debug1: Uwierzytelnianie w formacie xx.xx.xx.xx: 22 jako „redacted2”
debug3: hostkeys_foreach: czytanie pliku „/home/redacted/.ssh/known_hosts”
debug3: record_hostkey: znaleziono typ klucza RSA w pliku /home/redacted/.ssh/known_hosts:2
debug3: load_hostkeys: załadowano 1 klucze z xx.xx.xx.xx
debug3: order_hostkeyalgs: preferuj hostkeyalgs: ssh-rsa-cert-v01 @ openssh.com, rsa-sha2-512, rsa-sha2-256, ssh-rsa
debug3: wyślij pakiet: wpisz 20
debug1: wysłano SSH2_MSG_KEXINIT
debug3: odbiera pakiet: typ 20
debug1: odebrano SSH2_MSG_KEXINIT
debug2: propozycja KEXINIT klienta lokalnego
debug2: Algorytmy KEX: curve25519-sha256 @ libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group-exchange-sha1 , diffie-hellman-group14-sha1, ext-info-c
debug2: algorytmy klucza hosta: ssh-rsa-cert-v01 @ openssh.com, rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256-cert-v01 @ openssh.com, ecdsa- sha2-nistp384-cert-v01 @ openssh.com, ecdsa-sha2-nistp521-cert-v01 @ openssh.com, ssh-ed25519-cert-v01 @ openssh.com, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, ssh-ed25519
debug2: szyfry ctos: chacha20-poly1305 @ openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm @ openssh.com, aes256-gcm @ openssh.com, aes128-cbc, aes192-cbc, aes256 -cbc, 3des-cbc
debug2: ciphers stoc: chacha20-poly1305 @ openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm @ openssh.com, aes256-gcm @ openssh.com, aes128-cbc, aes192-cbc, aes256 -cbc, 3des-cbc
debug2: MACs ctos: umac-64-etm @ openssh.com, umac-128-etm @ openssh.com, hmac-sha2-256-etm @ openssh.com, hmac-sha2-512-etm @ openssh.com, hmac -sha1-etm @ openssh.com, umac-64 @ openssh.com, umac-128 @ openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
debug2: MACs stoc: umac-64-etm @ openssh.com, umac-128-etm @ openssh.com, hmac-sha2-256-etm @ openssh.com, hmac-sha2-512-etm @ openssh.com, hmac -sha1-etm @ openssh.com, umac-64 @ openssh.com, umac-128 @ openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
debug2: kompresja ctos: brak, zlib @ openssh.com, zlib
debug2: kompresja stoc: brak, zlib @ openssh.com, zlib
debug2: języki ctos: 
debug2: języki stoc: 
debug2: first_kex_follows 0 
debug2: zarezerwowany 0 
debug2: propozycja KEXINIT serwera równorzędnego
debug2: Algorytmy KEX: diffie-hellman-group-exchange-sha256, diffie-hellman-group-exchange-sha1, diffie-hellman-group14-sha1, diffie-hellman-group1-sha1
debug2: algorytmy klucza hosta: ssh-rsa, ssh-dss
debug2: szyfry ctos: aes128-ctr, aes192-ctr, aes256-ctr, arcfour256, arcfour128, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, aes192-cbc, aes256-cbc, rc @ lysator.liu.se
debug2: ciphers stoc: aes128-ctr, aes192-ctr, aes256-ctr, arcfour256, arcfour128, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, aes192-cbc, aes256-cbcij, arc @ lysator.liu.se
debug2: MACs ctos: hmac-md5, hmac-sha1, umac-64 @ openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-ripemd160, hmac-ripemd160 @ openssh.com, hmac-sha1-96 , hmac-md5-96
debug2: MACs stoc: hmac-md5, hmac-sha1, umac-64 @ openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-ripemd160, hmac-ripemd160 @ openssh.com, hmac-sha1-96 , hmac-md5-96
debug2: kompresja ctos: brak, zlib @ openssh.com
debug2: kompresja stoc: brak, zlib @ openssh.com
debug2: języki ctos: 
debug2: języki stoc: 
debug2: first_kex_follows 0 
debug2: zarezerwowany 0 
debug1: kex: algorytm: diffie-hellman-group-exchange-sha256
debug1: kex: algorytm klucza hosta: ssh-rsa
debug1: kex: server-> szyfr klienta: aes128-ctr MAC: [email protected] kompresja: brak
debug1: kex: client-> szyfr serwera: aes128-ctr MAC: [email protected] kompresja: brak
debug3: wyślij pakiet: wpisz 34
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST (2048 zamknięty
debug3: odbiera pakiet: typ 96
debug2: channel 0: rcvd eof
debug2: kanał 0: wyjście otwarte -> drenaż
debug3: odbiera pakiet: typ 97
debug2: kanał 0: zamknij rcvd
debug3: kanał 0: nie wyśle ​​danych po zamknięciu
Wyloguj
debug3: kanał 0: nie wyśle ​​danych po zamknięciu
debug2: kanał 0: pusty pusty
debug2: kanał 0: zamknij_pisz
debug2: kanał 0: odpływ wyjściowy -> zamknięty
debug2: kanał 0: prawie nie żyje
debug2: kanał 0: gc: powiadom użytkownika
debug2: kanał 0: gc: użytkownik odłączony
debug2: kanał 0: wyślij zamknij
debug3: wyślij pakiet: wpisz 97
debug2: kanał 0: nie działa
debug2: kanał 0: odśmiecanie
debug1: kanał 0: wolny: sesja klienta, kanały 1
debug3: kanał 0: status: Otwarte są następujące połączenia:
  # 0 sesja klienta (t4 r0 i3 / 0 o3 / 0 fd -1 / -1 cc -1)

debug3: wyślij pakiet: wpisz 1
debug1: fd 1 kasuje O_NONBLOCK
debug3: fd 2 nie jest O_NONBLOCK
Połączenie z xx.xx.xx.xx zostało zamknięte.
Przeniesiono: wysłano 3376, odebrano 3072 bajty w 0,8 sekundy
Bajtów na sekundę: wysłano 3911,4, odebrano 3622,9
debug1: Wyjdź ze stanu 0

ssh -vvvT

OpenSSH_7.2p2 Ubuntu-4ubuntu1, OpenSSL 1.0.2g-fips 1 marca 2016
debug1: odczyt danych konfiguracyjnych /home/redacted/.ssh/config
debug1: /home/redacted/.ssh/config wiersz 6: Stosowanie opcji dla ops1
debug1: odczyt danych konfiguracyjnych / etc / ssh / ssh_config
debug1: / etc / ssh / ssh_config wiersz 19: Stosowanie opcji dla *
debug2: rozwiązanie portu „xx.xx.x.xx” 22
debug2: ssh_connect_direct: needpriv 0
debug1: Podłączanie do portu xx.xx.x.xx [xx.xx.x.xx] 22.
debug1: Połączenie ustanowione.
debug1: plik tożsamości /home/redacted/.ssh/id_rsa typ 1
debug1: key_load_public: Brak takiego pliku lub katalogu
debug1: plik tożsamości /home/redacted/.ssh/id_rsa-cert typ -1
debug1: Włączanie trybu zgodności dla protokołu 2.0
debug1: Ciąg wersji lokalnej SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu1
debug1: Zdalny protokół w wersji 2.0, zdalna wersja oprogramowania OpenSSH_5.3
debug1: dopasowanie: OpenSSH_5.3 pat OpenSSH_5 * zgodny 0x0c000000
debug2: fd 3 ustawienie O_NONBLOCK
debug1: Uwierzytelnianie w formacie xx.xx.x.xx: 22 jako „zredagowane”
debug3: hostkeys_foreach: czytanie pliku „/home/redacted/.ssh/known_hosts”
debug3: record_hostkey: znaleziono typ klucza RSA w pliku /home/redacted/.ssh/known_hosts:2
debug3: load_hostkeys: załadowano 1 klucze z xx.xx.x.xx
debug3: order_hostkeyalgs: preferuj hostkeyalgs: ssh-rsa-cert-v01 @ openssh.com, rsa-sha2-512, rsa-sha2-256, ssh-rsa
debug3: wyślij pakiet: wpisz 20
debug1: wysłano SSH2_MSG_KEXINIT
debug3: odbiera pakiet: typ 20
debug1: odebrano SSH2_MSG_KEXINIT
debug2: propozycja KEXINIT klienta lokalnego
debug2: Algorytmy KEX: curve25519-sha256 @ libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group-exchange-sha1 , diffie-hellman-group14-sha1, ext-info-c
debug2: algorytmy klucza hosta: ssh-rsa-cert-v01 @ openssh.com, rsa-sha2-512, rsa-sha2-256, ssh-rsa, ecdsa-sha2-nistp256-cert-v01 @ openssh.com, ecdsa- sha2-nistp384-cert-v01 @ openssh.com, ecdsa-sha2-nistp521-cert-v01 @ openssh.com, ssh-ed25519-cert-v01 @ openssh.com, ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, ssh-ed25519
debug2: szyfry ctos: chacha20-poly1305 @ openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm @ openssh.com, aes256-gcm @ openssh.com, aes128-cbc, aes192-cbc, aes256 -cbc, 3des-cbc
debug2: ciphers stoc: chacha20-poly1305 @ openssh.com, aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm @ openssh.com, aes256-gcm @ openssh.com, aes128-cbc, aes192-cbc, aes256 -cbc, 3des-cbc
debug2: MACs ctos: umac-64-etm @ openssh.com, umac-128-etm @ openssh.com, hmac-sha2-256-etm @ openssh.com, hmac-sha2-512-etm @ openssh.com, hmac -sha1-etm @ openssh.com, umac-64 @ openssh.com, umac-128 @ openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
debug2: MACs stoc: umac-64-etm @ openssh.com, umac-128-etm @ openssh.com, hmac-sha2-256-etm @ openssh.com, hmac-sha2-512-etm @ openssh.com, hmac -sha1-etm @ openssh.com, umac-64 @ openssh.com, umac-128 @ openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-sha1
debug2: kompresja ctos: brak, zlib @ openssh.com, zlib
debug2: kompresja stoc: brak, zlib @ openssh.com, zlib
debug2: języki ctos: 
debug2: języki stoc: 
debug2: first_kex_follows 0 
debug2: zarezerwowany 0 
debug2: propozycja KEXINIT serwera równorzędnego
debug2: Algorytmy KEX: diffie-hellman-group-exchange-sha256, diffie-hellman-group-exchange-sha1, diffie-hellman-group14-sha1, diffie-hellman-group1-sha1
debug2: algorytmy klucza hosta: ssh-rsa, ssh-dss
debug2: szyfry ctos: aes128-ctr, aes192-ctr, aes256-ctr, arcfour256, arcfour128, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, aes192-cbc, aes256-cbc, rc @ lysator.liu.se
debug2: ciphers stoc: aes128-ctr, aes192-ctr, aes256-ctr, arcfour256, arcfour128, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, aes192-cbc, aes256-cbcij, arc @ lysator.liu.se
debug2: MACs ctos: hmac-md5, hmac-sha1, umac-64 @ openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-ripemd160, hmac-ripemd160 @ openssh.com, hmac-sha1-96 , hmac-md5-96
debug2: MACs stoc: hmac-md5, hmac-sha1, umac-64 @ openssh.com, hmac-sha2-256, hmac-sha2-512, hmac-ripemd160, hmac-ripemd160 @ openssh.com, hmac-sha1-96 , hmac-md5-96
debug2: kompresja ctos: brak, zlib @ openssh.com
debug2: kompresja stoc: brak, zlib @ openssh.com
debug2: języki ctos: 
debug2: języki stoc: 
debug2: first_kex_follows 0 
debug2: zarezerwowany 0 
debug1: kex: algorytm: diffie-hellman-group-exchange-sha256
debug1: kex: algorytm klucza hosta: ssh-rsa
debug1: kex: server-> szyfr klienta: aes128-ctr MAC: [email protected] kompresja: brak
debug1: kex: client-> szyfr serwera: aes128-ctr MAC: [email protected] kompresja: brak
debug3: wyślij pakiet: wpisz 34
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST (drenaż 2048
debug2: kanał 0: ibuf pusty
debug2: kanał 0: wyślij eof
debug3: wyślij pakiet: wpisz 96
debug2: kanał 0: drenaż wejściowy -> zamknięty
debug3: odbiera pakiet: typ 98
debug1: client_input_channel_req: kanał 0 typ wyjścia typ odpowiedzi 0
debug3: odbiera pakiet: typ 96
debug2: channel 0: rcvd eof
debug2: kanał 0: wyjście otwarte -> drenaż
debug2: kanał 0: pusty pusty
debug2: kanał 0: zamknij_pisz
debug2: kanał 0: odpływ wyjściowy -> zamknięty
debug3: odbiera pakiet: typ 97
debug2: kanał 0: zamknij rcvd
debug3: kanał 0: nie wyśle ​​danych po zamknięciu
debug2: kanał 0: prawie nie żyje
debug2: kanał 0: gc: powiadom użytkownika
debug2: kanał 0: gc: użytkownik odłączony
debug2: kanał 0: wyślij zamknij
debug3: wyślij pakiet: wpisz 97
debug2: kanał 0: nie działa
debug2: kanał 0: odśmiecanie
debug1: kanał 0: wolny: sesja klienta, kanały 1
debug3: kanał 0: status: Otwarte są następujące połączenia:
  # 0 sesja klienta (t4 r0 i3 / 0 o3 / 0 fd -1 / -1 cc -1)

debug3: wyślij pakiet: wpisz 1
debug1: fd 1 kasuje O_NONBLOCK
debug3: fd 2 nie jest O_NONBLOCK
Przeniesiono: wysłano 3040, odebrano 2800 bajtów w 1,9 sekundy
Bajtów na sekundę: wysłano 1588,6, odebrano 1472,4
debug1: Wyjdź ze stanu 0

/ etc / ssh / ssh_config

# To jest plik konfiguracyjny dla całego systemu klienta ssh. Widzieć
# ssh_config (5), aby uzyskać więcej informacji. Ten plik zawiera wartości domyślne dla
# użytkowników, a wartości można zmienić w plikach konfiguracyjnych dla poszczególnych użytkowników
# lub w wierszu poleceń.

# Dane konfiguracyjne są analizowane w następujący sposób:
# 1. opcje wiersza poleceń
# 2. plik specyficzny dla użytkownika
# 3. plik systemowy
# Każda wartość konfiguracji jest zmieniana tylko przy pierwszym ustawieniu.
# Tak więc definicje specyficzne dla hosta powinny znajdować się na początku
# plik konfiguracyjny i domyślnie na końcu.

# Domyślne ustawienia dla całej witryny dla niektórych często używanych opcji. Dla kompleksowego
# lista dostępnych opcji, ich znaczenie i wartości domyślne, zobacz
# ssh_config (5) strona man.

Gospodarz *
# ForwardAgent no
# ForwardX11 nr
# ForwardX11 Zaufane tak
# RhostsRSA Nr uwierzytelnienia
# RSA Uwierzytelnienie tak
# Hasło Uwierzytelnienie tak
# HostbasedAuthentication no
# GSSAPIANumer uwierzytelnienia
# GSSAPIDelegateCredentials no
# GSSAPIKeyExchange tak
# GSSAPITrustDNS nr
# BatchMode nr
# CheckHostIP tak
# Adres Rodzina dowolna
# ConnectTimeout 0
# StrictHostKeyChecking zapytaj
# IdentityFile ~ / .ssh / identity
# IdentityFile ~ / .ssh / id_rsa
# IdentityFile ~ / .ssh / id_dsa
# IdentityFile ~ / .ssh / id_ecdsa
# IdentityFile ~ / .ssh / id_ed25519
# Port 22
# Protokół 2
# Szyfrowanie 3des
# Szyfry aes128-ctr, aes192-ctr, aes256-ctr, arcfour256, arcfour128, aes128-cbc, 3des-cbc
# MACs hmac-md5, hmac-sha1, umac-64 @ openssh.com, hmac-ripemd160
# EscapeChar ~
# Nr tunelu
# TunnelDevice any: any
# PermitLocalCommand nr
# VisualHostKey no
# ProxyCommand ssh -q -W% h:% p gateway.example.com
# RekeyLimit 1G 1h
# SendEnv LANG LC_ *
    HashKnownHosts tak
   # GSSAPIA Uwierzytelnienie tak
   # GSSAPIDelegateCredentials no

Elmis
źródło
1
Nie sądzę, że to twoja konfiguracja; Jestem prawie pewien, że to opóźnienie sieciowe.
Wędrowiec
Tak też myślałem, ale moi współpracownicy w tej samej sieci nie mają tego problemu, a IntelliJ IDEA może tworzyć połączenia SSH bez opóźnień.
Powiedziałeś, że próbowałeś sshwejść do lokalnego hosta. Jakie były tego rezultaty? To samo opóźnienie? Bez opóźnień?
earthmeLon
O przepraszam. Bez opóźnień
Niedawno dostałem mnóstwo opóźnień od mojego hosta do zdalnego hosta lub do mojego hosta ze zdalnego hosta. Ethtool pokazał moje połączenie na 1 Gb, nawet światło na moim przełączniku mówiło 1 Gb. Jednak nadal było powolne. Podciągnąłem całą moc do komputera, a następnie kilkakrotnie nacisnąłem przycisk zasilania na komputerze. Podłączono zasilanie i włączyłem ponownie. Moje połączenie było wtedy solidne i uzyskiwałem pełną prędkość 1 Gb.
Terrance

Odpowiedzi:

0

Niestety nie mogę jeszcze komentować.

Co przychodzi mi do głowy na temat klienta:

Czy topwidziałeś obciążenie procesora? Być może proces SSH zużywa procesor do szyfrowania.

Czy rzuciłeś okiem na ssh -v[vv]dziwność? Może serwer i klient zgadzają się na bardzo bezpieczny szyfr lub MAC. Poszukaj

debug2: ciphers ctos: arcfour
debug2: ciphers stoc: arcfour
[...]
debug1: kex: server->client cipher: arcfour MAC: [email protected] compression: [email protected]
debug1: kex: client->server cipher: arcfour MAC: [email protected] compression: [email protected]

(gdzie arcfour jest tak naprawdę jednym z najsłabszych algorytmów o najniższym procesorze. Łączę się za pośrednictwem serwera proxy SSH). Poszukaj także ponownie generujących wiadomości.

Problemem może być także kompresja. Jednak ssh nie wydaje się tu zbyt wyraźnie mówić o poziomie kompresji.

debug2: compression ctos: [email protected],zlib,none
debug2: compression stoc: [email protected],zlib,none

Nie powiedziałeś wprost, jak „zdalne” są twoje zdalne serwery. W tej samej sieci, w innej sieci w tym samym kampusie, przez Internet?

Jeśli przez Internet, być może twoja zapora firmowa dokładnie sprawdza ruch SSH na porcie 22. Może zmiana portu może pomóc, jeśli możesz kontrolować /etc/ssh/sshd_configplik serwerów SSH .

Jeśli przez Internet jest SSH „jedynym” tunelem, z którego korzystasz, czy korzystasz z SSH za pośrednictwem dodatkowej sieci VPN?

Jeśli w tym samym kampusie przychodzą mi na myśl także zapory ogniowe, routing, sprawdzanie problemów. Kiedyś obwiniałem mojego dostawcę Internetu za problemy z moim Internetem; to było cholernie wolne. Trwało kilka dni. Dopóki nie dowiedziałem się, że włączyłem debugowanie na moim routerze Cisco, który zjadł tam zasoby.

Jeśli jesteś lokalny lub zdalny, czy łączysz się bezpośrednio, czy za pośrednictwem serwera proxy SSH, bramy lub hosta skoku? W takim przypadku, podobnie jak w przypadku VPN, masz podwójne szyfrowanie.

stueja
źródło
Naprawdę dobre myśli, dzięki. Przesłałem to pytanie również do działu IT w pracy. Większość zdalnych maszyn odbywa się za pośrednictwem Internetu w Amazon-us-east-1, a obecnie jestem na wschodnim wybrzeżu. Nie jest używana żadna dodatkowa sieć VPN. Najważniejsze, co mnie prześladuje, to dlaczego jest to problem tylko dla mnie, a nie dla moich współpracowników.
Elmis
Co jeszcze dzieje się na twoim kliencie? Czy istnieje ssh -v[vv]logowanie do pliku? A co powiesz iotop, czy pokazuje dużo więcej operacji na dyskach we / wy niż na stacjach roboczych twoich kolegów? Czy masz znacznie mniej pamięci RAM niż oni? Te same sterowniki dla interfejsu sieciowego?
stueja
Okablowanie, interfejsy i złącza OK? Zduplikowane adresy MAC w sieci? Duże ramki vs. zwykłe ramki? Zduplikowane adresy IP (mało prawdopodobne)? Problemy z podsieciami? Złożony NAT czy coś w twoich iptables? Za niskie / wysokie wartości okienkowania TCP?
stueja
Czy większość z nich nie zostałaby wykluczona z faktu, że zarówno JSch, jak i ssh -T me@remotełączą się i działają bez opóźnień?
Elmis
Uwzględniłem zarówno wyniki, ssh -vvv me@remotejak i ssh -vvvT me@more(pierwsze opóźnienie, drugie nie). Jeśli chodzi o pytania dotyczące specyfikacji sprzętu: nasze specyfikacje są prawie takie same. Korzystam z Dell XPS 15 z 16 GB pamięci RAM, z dyskiem SSD 512 GB przy ~ 15%, nic innego oprócz Google Chrome. Nie jestem całkowicie pewien sterowników sieciowych, z wyjątkiem tego, że jestem w najnowszej dostępnej stabilnej wersji.
Elmis