SSH uten passord

nettverkSSH er en protokoll for sikker kommunikasjon mellom datamaskiner, fortrinnsvis maskiner med BSD, Linux og Mac OS, men kan også brukes fra Windows-maskiner ved å benytte Putty. Jeg ønsker her å vise hvordan man kan gjøre dette på maskiner med BSD, Linux og Mac OS, for Windows; se Putty sin dokumentasjon.

Dersom man ønsker å benytte seg av innlogging over SSH uten passord er det viktig å husket at dersom noen får tak i din private nøkkel vil man også andre kunne logge seg inn som deg.

For å komme i gang må man lage nøklene som er nødvendig, og da åpner man en terminal og skriver følgende kommando:

ssh-keygen -t rsa

Det vil komme opp noe tilsvarende dette, og man trenger ikke lenge inn nye verdier med mindre man ønsker å ha passord på nøklene:

Enter file in which to save the key (/home/brukernavn/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/brukernavn/.ssh/id_rsa.
Your public key has been saved in /home/brukernavn/.ssh/id_rsa.pub.

I hjemmemappen er det nå laget to nye filer:

  • .ssh/id_rsa – Den hemmelige nøkkelen som ikke må gies til noen andre
  • .ssh/id_rsa.pub – Den offentlige nøkkelen som sendes til den andre databaskinen

Nå som nøklene er opprettet er det tid for å kopiere over den offentlige nøkkel til maskinen man ønsker å koble seg til. Skriv inn passordet ditt når du får spørsmål om dette.

ssh-copy-id -i ~/.ssh/id_rsa.pub brukernavn@ssh.domene.net

Nøkkelen din er nå lagt inn i filen .ssh/authorized_keys på den eksterne maskinen. Nå kan du logge deg på uten passord, bare prøv:

ssh brukernavn@ssh.domene.net

Dersom det ikke fungerer, så kan det være at muligheten for innlogging uten passord er slått av den eksterne maskinen.

Husk å ikke strø rundt deg med private nøkler!

Koding uten kildekodekontroll

For første gang på lenge skulle jeg bare programmere litt uten å ha koden i kildekodekontroll. Det var for å se om jeg kunne få det til, og etter litt for kort tid fungerte det nøyaktig som det skulle. Siden koden gjorde jobben sin var det tid for å gjøre litt refactoring. Det var klokka 10, og koden fungerer ikke igjen enda…

Så, for å plukke relevante tips fra boka The Pragmatic Programmer av Andrew Hunt og David Thomas:

(23) Always Use Source Code Control
Source code control is a time machine for your work – you can go back.

(47) Refactor Early, Refactor Often
Just as you might weed and rearrange a garden, rewrite, rework, and re-architect code when it needs it. Fix the root of the problem.

Jeg lover; aldri igjen uten kildekodekontroll.

Hemmelig epost?

Sikkerhet

NRK kunne i dag slå opp at Sverige fra og med 1. januar 2009 kan følge med på hva nordmenn gjør på Internett når nettverkstrafikken går innom Sverige. Dette har vært oppe også tidligere i år, men det ser ut til å utebli løsninger som kan være med på å løse dette nye problemet.

Les mer »

Bachelor i realfag

I dag kom beviset på min gjennomføring av bachelor ved NTNU. Ble litt paff da det var rekommandert sending til meg på postkontoret, og forstod absolutt ingenting før jeg så NTNU sin logo på brevet.

Da er det vel bare til å stå på for å komme seg igjennom også master, får begynne med de to eksamenene som gjenstår før jul…

En titt på Google App Engine

Google kom tidligere i år med noe de kaller Google App Engine (GAE), en tjeneste som lar utviklere lage applikasjoner i Python som kan hostes hos Google. I motsetning til vanlige webhotell er det en del begrensninger som man ikke er vant til fra tidligere hva angår biblioteker.

Google App Engine

Google App Engine

GAE tilbyr ikke en vanlig relasjonsdatabase (som MySQL, MS SQL osv) men noe som kalles Datastore, denne er i tillegg begrenset til å ikke hente ut mer enn maks 1000 poster fra en “tabell”. Biblioteket som Google stiller med støtter heller ikke sesjoner (sessions), men man kan bygge dette ut ved å legge ved egne biblioteker. En annen artig begresning er at koden ikke kan lese eller skrive til disk. Når dette er sagt stiller man med Memcache, noe som kan sammenlignes med delt minne tilgjengelig fra alle instansene som kjører (for Google kan finne på å kjøre opp applikasjonen på mange for å skallere).

Jeg oppdaget GAE gjennom en artikkel i Python Magazine, og fant det utrolig interessant, men av mangel på applikasjoner å utvikle ble det lagt litt på hylla helt til for noen dager siden når jeg kom over en video på YouTube som viste ting i praksis, og da måtte det bare testes.

For å vise litt av mulighetene i GAE skal jeg utvikle en liten applikasjon som viser et tilfeldig sitat fra datastore, og som lar Google sine brukere logge på for å legge inn nye sitater. Det skal også være en link til hvert sitat.

Les mer »