ssh

SSH: Unable to negotiate with legacyhost

OpenSSH logó
Probléma: Egy nagyon régi eszközt (esetemben egy D-Link Access Pointot) kellene elérned SSH-n keresztül. Más bejutási lehetőséged nemigen van. Az SSH kliens megtagadja a csatlakozást mondván, hogy ő ilyen régi eszközzel már nem beszél, mert gyenge a kulcscsere algoritmus.

A teljes hibaüzenet így néz ki:

Unable to negotiate with legacyhost: no matching key exchange method found.
Their offer: diffie-hellman-group1-sha1

UPC és az SSH időtúllépés

OpenSSH logó
Probléma: A UPC az internetszolgáltatód, és ha egy rövid ideig (néhány percig) nem nyúlsz az aktív SSH munkamenetedhez, akkor az megszakad (fagyás, broken pipe stb.).
Pl.:  packet_write_wait: Connection to <server> port 22: Broken pipe
Megoldás: Rakd be a következő két sort vagy a saját SSH konfigurációdba (~/.ssh/config) vagy a globális SSH konfigurációba (/etc/ssh/ssh_config):

Host *
	ServerAliveInterval 20

Több gép, több privát SSH kulcs

OpenSSH logó
Probléma: Van több géped, melyekhez valamiért nem szeretnéd ugyanazt az SSH kulcsot használni, hanem mondjuk gépenként egyet. Ugyanakkor a sima SSH parancs csak id_dsa/id_rsa/id_ecdsa néven találja meg a kulcsokat, nem tudsz többet használni.

Cannot set LC_ALL to default locale: No such file or directory

Ha a címben említett hibaüzenettel találod szembe magad, akkor nincs más dolgod, mint letiltani, hogy az SSH továbbítsa a lokalizációs beállításokat. Ugyanis a problémát a szerver és a kliens eltérő lokalizációja okozza.
Tehát:

Ubuntu: disztribúciófrissítés parancssorból SSH-n

Előfordulhat, hogy távolról bejelentkezve kell egy Ubuntu disztribúciófrissítést levezényelni. Nem egy életbiztosítás, ugyanakkor egy kis odafigyeléssel gond nélkül működhet.

Első lépésként telepítsünk egy screen-t. A screen egy terminál multiplexer. Ami nekünk kell belőle, az az a képesség, hogy ha a konzol kapcsolat megszakad (e.g. leszakadunk az SSH-ról), akkor is tovább fut a munkamenetünk, ahová a géphez visszakapcsolódva könnyen újracsatlakozhatunk. Így nem szakad meg az aktuális parancs futása.
A telepítéshez add ki az alábbi parancsot: