Samtidssäkrad

Den här domänen är 8 668 dagar gammal och har säkert rullat WordPress i olika former i ~20 år.

Och sen idag är temat responsivt.

SSH multiplexing på språng

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ö.

Props till gamlingarna

The IDEs we had 30 years ago… and we lost

Den här texten gav samma känsla som bläddrandet i någon gammal programmeringshandbok.

Skönt att drömma sig tillbaka till en enklare tid där allt var nytt och svårt.

Självhostade FOSS-tjänster med configs för Docker Compose

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.

Awesome Docker Compose Examples

Koda som det är 1992

Lawrence Kesteloot har vänligt nog

  1. Kodat en Turbo Pascal-kompliator i javascript
  2. Släppt koden fritt
  3. Slängt upp en körbör version på nätet så att jag slipper installera node

Repo: https://github.com/lkesteloot/turbopascal

Lekbox: https://lkesteloot.github.io/turbopascal/

Rymdkriget

Något som smög förbi mig i Coronaröran:

US Space Force meddelade i mitten av mars att de har aktiverat ett nytt offensivt vapen, en markbaserad manick för störning och blockering av fientlig satellitkommunikation.

Tydligen utvecklad med fräsiga metoder:

“CCS B10.2 represents the end of the traditional way of development,” Purdy said. “Future upgrades and enhancements will make use of SMC’s Agile DevSecOps (Development, Security and Operations) approach adapting to the evolving battlefield while delivering capabilities to the warfighter faster and better than our opponents.”

Se Aerotechnews.

Du är det du bygger

Foto på visitkortet

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.

My Business Card Runs Linux

Missa inte RMS i Stockholm 8 November

FOSS-Stockholm har bjudit in Gnuprojektets grundare och chefsideolog Richard M Stallman för en föreläsning om hans hjärtefråga Fri Mjukvara. Platserna försvann på några timmar, men tack vare vänliga sponsorer har lokalen uppgraderats och det finns fortfarande ett hundratal (gratis)biljetter kvar.

Plats: Aula Magna/KTH, Frescativägen 6, Stockholm.
Tid: Tisdag 8 November, kl 18-20:30 (+efterföljande nördöl på lokal).

Boka din biljett via Eventbrite!

”I can’t belive it’s not WordPress!”

Drupal-Sverige växer så att det knakar. Gamla kontorskompisen och i24-partnern Björn har till sist lyckas tämja Dries Best. Tillsammans med Karin (Drupalhackande fru) och Maja (möbelbloggande svägerska) har de lyckats iterera konceptet från Björns tunga hobbyprojekt I Have Synth till snabbfotade Möbler.se med Drupal 6 som grund.

Data från egentutvecklade moduler för soffor och andra möbler serveras blixsnabbt från Varnishcachen. Dynamiskt innehåll som en sökning efter Stolar tutar på fint eftersom åldringen Mysql är bortbytt mot Solr.

Läs mer om familjeprojektet Möbler.seMaja för familjens möbeltraditionen vidare.

För att det går

short s[70];*l=s;t;main(){for(;;){read(0,s,140);if((s[4]&65280)==256&s[10]==8){s[10]=0;s[11]+=8;t=l[4];l[4]=l[3];l[3]=t;write(1,s,140);}}}

Priset för helgens skönaste geek går till Adam Dunkel som hackat ihop en tweet-sized (, max 140 chars),  IP-stack för BSD. Begränsad funktionalitet, visst – men det går i alla fall att pinga. Varför? För skojs skull.

”So what’s the point of this? This was done only for the fun of it. Fitting a sensible program into 140 characters of source code is quite a challenge. It started with Razvan Musaloiu-E. posting a tweet-size program that would crash MacOSX. Inspired by this, I began writing a few small programs (Hello world, a Fibbonachi function, a factorial function, and a small linked list library) and finally ended up writing the twIP stack. Just for fun.”

Kolla in själv: twIP – a Tweet-size IP stack.

Tio senaste: