SSH multiplexing på språng
18 januari 2026
Många SSH-användare använder multiplexing för att snabba upp arbetet. Metoden sparar tid men kan orsaka problem när datorn byter eller tappar nätverk. Här finns mina anteckningar med en metod för att undvika låsta sessioner.
Vid varje SSH-anslutning sker handskakning för kryptering och autentisering. Det tar tid och kan bli ett problem om systemet du ansluter till kräver tvåfaktorsautentisering. Fördröjningen blir särskilt tydlig för den som ofta öppnar nya terminalfönster mot samma server eller har ett skript som utför upprepade anslutningar för att köra underhållskommandon.
Lösningen är multiplexing via ControlMaster. Funktionen gör att SSH skapar en socket på den lokala datorn och återanvänder den redan etablerade anslutningen för efterföljande sessioner. Det eliminerar fördröjningen vid autentisering och ger omedelbar sessionstillgång.
Men det finns fallgropar som kan göra arbetet svårare i stället för lättare.
Det vanligaste problemet uppstår när datorn byter nätverk, till exempel när en bärbar dator flyttas från kontoret till hemmet eller när datorn går i viloläge. Om den ursprungliga anslutningen bryts utan att stängas korrekt finns socketen kvar på klientdatorn. Nästa gång användaren försöker ansluta tror SSH att kontakten fortfarande fungerar. Terminalen hänger sig och användaren måste vänta på en timeout.
Ett annat problem rör filsystemet. Unix-domänsocketar har en hård gräns på 104–108 tecken i sökvägen, beroende på operativsystem. En vanlig konfiguration använder serverns namn i filnamnet för socket-filen. Om servernamnet är långt – vilket inte är ovanligt i moderna molnmiljöer – misslyckas anslutningen helt.
För att undvika problemen krävs anpassad konfiguration. Den bör innehålla en tidsgräns för hur länge en anslutning får leva och en metod för att hålla filnamnen korta.
Följande steg fungerar för en användare med macOS eller Linux.
1. Skapa en mapp för sockets
SSH skapar inte mappen automatiskt. Gör detta före konfigurationen läggs in.
mkdir -p ~/.ssh/sockets
chmod 700 ~/.ssh/sockets
Rättigheterna 700 säkerställer att bara ägaren kan läsa och skriva i mappen. Det är viktigt: en öppen socket ger full tillgång till fjärrsystemet utan ny autentisering. I en miljö med flera användare innebär felaktiga rättigheter att en lokal angripare kan kapa sessionen.
2. Uppdatera konfigurationen
Redigera filen ~/.ssh/config. Använd Host * för att reglerna ska gälla alla servrar, eller specificera enskilda värdar. Se ssh_config(5) för fullständig dokumentation.
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%C
ControlPersist 10m
I exemplet ovan används %C i stället för det vanligare %h%p%r (värdnamn, port, användarnamn). Skillnaden är att %C skapar en kort SHA1-hash av anslutningsuppgifterna. Det löser problemet med Unix-domänsocketarnas teckenbegränsning – ett långt servernamn som web-server-42.prod.eu-north-1.compute.internal ger annars en sökväg som överstiger gränsen på 104 tecken.
ControlPersist 10m anger att anslutningen ska hållas öppen i tio minuter efter att sista sessionen stängts.
Hantera låsta anslutningar
Även med en bra konfiguration kan en session hänga sig om nätverket är instabilt. Lös problemet genom att radera socket-filerna.
Lägg in ett alias i din profilfil (exempelvis .bashrc eller .zshrc) för att snabbt kunna rensa upp.
alias fixssh="rm -f ~/.ssh/sockets/* && echo 'Anslutningar rensade'"
Genom att använda dessa inställningar blir arbetet i terminalen snabbare och stabilare. Ju fler servrar du hanterar, desto större nytta har du av en korrekt uppsatt miljö.
System | Kommentarer (0)
Självhostade FOSS-tjänster med configs för Docker Compose
18 april 2023
Kanske mest ett bokmärke för mig själv eftersom jag ständigt glömmer bort vad repot heter. I vilket fall: div configs för allt från mediehantering till bloggning och automatisering.
System | Kommentarer inaktiverade för Självhostade FOSS-tjänster med configs för Docker Compose
Du är det du bygger
28 december 2019

George Hilliard jobbar med embedded system och är uppenbarligen rätt duktig på det. Med en F1C100 som bas har han byggt ett komplett bootbart linuxsystem.
På sitt visitkort.
På det skrivbara flashminnet finns det tom någon meg över för att spara saker i hemkatalogen.
Total hårdvarukostnad: under 3 USD/kort.
System | Kommentarer inaktiverade för Du är det du bygger
Iphone slår ut universitetsnät
17 juli 2007
Det verkar att som att Apples nya statussymbol är allvarligt feldesignad (eller i ’bästa fall’ är inkompatibel med Ciscos nätverksutrustning): enligt networkworld.com skapar de 150 itelefonerna på Duke Universitys campus kaos genom att ARP-flodda de trådlösa accesspunkterna med upp till 18000 requests i sekunden!
The requests are for what is, at least for Duke’s network, an invalid router address. Devices use the Address Resolution Protocol (ARP) to request the MAC address of the destination node, for which it already has the IP address. When it doesn’t get an answer, the iPhone just keeps asking.
(Via /.)
Andra bloggar om: iphone, trådlösa nätverk, wlan.
System | Kommentarer (2)
Nytt hopp för bättre drivrutiner till Linux
30 januari 2007
Att koppla in avancerad eller modern hårdvara i ett GNU/Linux-system är nästan alltid ett gissel. Ofta är drivrutinen krångligt att konfigurera, ibland fylld med säkerhetshål eller rent skräp – men allt som oftast helt obefintligt. Det finns ett fåtal hårdvarutillverkare som släpper egna drivrutiner. Men de är oftast stängda binärer som inte hänger med i kernelns utveckling.
SUSE startade i höstas ett hedervärt projekt där de kan ta ansvar för att underhålla och uppdatera drivrutiner. Problemet är att detta har varit något som riktats mot Enterprise-kunder (som användare) och minst Silver-partners (som tillverkare) och är inte något som direkt gynnar hela linuxcommunityn. Det finns inte heller många tillverkare som vill satsa pengar på en ”så marginell marknad”.
Det finns dock gott hopp om bättring! Greg Kroah-Hartman, en tongivande kernelutvecklare och författare till boken Linux Kernel in a Nutshell postade igår en inbjudan till världens hårdvarutillverkare. Han säger att en grupp kernelutvecklare nu erbjuder sig att gratis utveckla drivrutiner för hårdvara som idag saknar stöd.
Det enda som utvecklarna kräver är specifikationer på hårdvaran och direktkontakt med en ingenjör som vid behov kan svara på frågor.
In return, you will receive a complete and working Linux driver that is added to the main Linux kernel source tree. The driver will be written by some of the members of the Linux kernel developer community (over 1500 strong and growing). This driver will then be automatically included in all Linux distributions, including the ”enterprise” ones. It will be automatically kept up to date and working through all Linux kernel API changes. This driver will work with all of the different CPU types supported by Linux, the largest number of CPU types supported by any operating system ever before in the history of computing.
För att företagen inte ska behöva oroa sig över information om spjutspettsteknik ska läcka ut har gruppen i sammarbet med Open Software Development Lab/The Linux Foundation utvecklat ett NDA där tillverkarens hemligheter skyddas samtidigt som det inte finns några egna utvecklingskostnader:
Nu kommer era utvecklare att ha mer tid över till att arbeta med drivrutiner till alla andra operativsystem som finns där ute, och ni kan märka ert marknadsföringsmaterial med ”Stöd för Linux”.
Kroah-Hartman påpekar noga att erbjudandet gäller *all sorts hårdvara*
Det här erbjudandet gäller alla typer av enheter, från USB-leksaker till PCI-grafikkort till höghastighetsnätverksskort. Om ni har tillverkat det kan vi fixa drivrutiner för linux åt det.
System | Kommentarer inaktiverade för Nytt hopp för bättre drivrutiner till Linux
Konvertera XVID till VCD i linux med hjälp av ffmpeg och K3b
3 december 2006
Jag har aldrig förut haft behov att skapa en VCD (Video Compact Disc), men idag ville en granne kopiera en film jag hade för att spela i sin DVD-spelare. Eftersom hela filmsamligen nästan exlusivt består av XVID-filmer och DVD-spelaren är av enkel model utan stöd för datorformat så började jag söka på nätet. Problemet var faktiskt enkelt löst. Det tog en kvart att ladda ner och installera mjukvaran, cirka en halvtimme att konvertera filmen och en kvart att bränna ut den på en CD-RW.
Så här gjorde jag för att konvertera filmen från XVID till VCD på min Slackware GNU/Linux-box:
Först laddade jag ner och installerade dessa programvaror:
- FFmpeg– ett fritt ’multimediasystem’ som vi använder för att konvertera XVID till rå MPEG-2.
- libcdio – GNU-projektets bibliotek för att hantera cd-roms.
- vcdimager – programpaket för att skapa och hantera VCD-images.
- K3b – KDEs motsvarighet till Nero. Ett användarvänligt program för att bränna alla slags optiska skivor.
Efter att allt var installerat körde jag detta kommando för att skapa en råkopia av filmen i MPEG-2 format:
ffmpeg -i XVIDFILM.avi -target pal-vcd /tmp/vcd.mpg
En ”rå” MPEG dump skapas i /tmp/.
Sen startade jag bara K3b, valde ”Create new VCD” under ”New Project” och klickade ”burn”. Smidigt som tusan!
System | Kommentarer (1)
The mystery of the Azureus disk cache
16 augusti 2006
I am on the road for a bit – and for the moment I got access to a pretty swift 100/10 fiber connection courtesy of my generous host. Naturally I quickly decided to test how much this could improve my ratio on the favorite bittorrent trackers and I started seeding away …
It wasnt long before the fans on my poor old trusty G4 Powerbook started to go haywire, the temperature monitor said 60C and I decided that something must be done before the poor mac laptop melts. My prefered bt-client is Azureus, but since my home connection is real slow and my desktop hardware is second to none, I really never had any need to do any more advanced tweaking than limiting the upload speed.
At File -> Preferences -> Files -> Torrents -> Performance Options something interesting was found:
- [ ] ”Enable disk cache”
A cache for a very disk intensive system as Bittorrent sound very reasonable – nothing fishy there. On the other hand, one could easily think that as much cache as possible is good. Right? The setting had a note that to big cache would create memory problems for the JVM. 32 megs below the maximum VM is recommendend and that more than 32 megs of cache would be overkill. Humm. My current VM-max size was 126.62 mb and I got 1024 in total – so I decided to be bold: I put 50 meg for cache and went out for a smoke.
When I came back the temperature monitor showed 55C and the fans was all quiet. I could not hear one single sound from the disk. Much better!
Now I decided to do my homework properly and started to search after the optimal configuration with OS X/Azuarus/1024mb ram – but no luck! Not much to read about the disk cache at all! I found a nice blog entry that mention it, but the azureus wiki simply say ”Important: set it to 32 MB or less!”. Very confusing.
I would be more than happy if someone could enlighten me – for now I will stick with my 50 megs and will keep on searching for more info.
