English version of this page

Oppsett av SSH med Linux, macOS eller Windows

Konfigurasjon av OpenSSH-klient 

macOS og Linux benytter OpenSSH som standard SSH-klient og -server. På oppdaterte Windows 10-maskiner med OpenSSH-klienten installert kan du bruke det samme oppsettet. Dette kan konfigureres på flere måter:

  • Via standard oppsett fra leverandør, felles for alle brukere. Settes normalt i /etc/ssh/ssh_config og/eller i /etc/ssh/ssh_config.d/*
  • Via kommandolinjeopsjoner til ssh, f.eks. ssh -o Compression=yes
  • Oppsett for en bruker ved å endre ~/.ssh/config 

En .ssh/config-fil kan inneholde oppsett som gjelder alle maskiner du vil kontakte. Du kan også lage konfigurasjon som er spesifikk for enkeltmaskiner eller grupper av maskiner.

Oppsett som skal gjelde alle maskiner bør settes nederst nederst i fila. SSH benytter første oppsett som treffer. Hvis du setter globale settinger nederst, kan du overstyre en eller flere av dem med innslag lenger opp.

Eksempel konfigurasjon

Host testmaskin 
        Hostname test.ett-domene.com
        User test

Host *.hjemme.com
        User hjemmebruker
        ForwardX11 yes

Host uioproxy
        User uiobruker
        Hostname login.uio.no
        DynamicForward 9000

Host *.uio.no !login.uio.no
        ProxyJump brukernavn@login.uio.no

Host *
        ControlMaster auto
        ControlPath /tmp/%r@%h:%p
        Compression yes
        ForwardX11 no
        

 

Logg inn på testmaskin

Her kan du logge inn på test.ett-domene.com, med brukeren test med kommandoen under:

[user@host ~]$ ssh testmaskin

Du kan også kjøre ssh test@test.ett-domene.com.

Logg inn på hjemmemaskin

Logg inn på hvilken som helst maskin som treffer *.hjemme.com:

[user@host ~]$ ssh maskin.hjemme.com

Her logger du inn på maskin.hjemme.com, med brukeren hjemmebruker. Det blir det samme som å kjøre ssh -X hjemmebruker@maskin.hjemme.com med X11-forwarding skrudd på. 

Logg inn på login.uio.no

[user@host ~]$ ssh uioproxy

Her vil du logge på maskin login.uio.no med brukeren uiobruker. Du skrur da på DynamicForward på lokal port 9000. Ved å sette opp 127.0.0.1:9000 i din browser som SOCKS-proxy vil all trafikk fra browseren gå via login.uio.no og opptre som om den er på innsiden av UiO-nettet.

Logg inn på kontorlinux.uio.no

[user@host ~]$ ssh kontorlinux.uio.no

Her vil du logge på maskin kontorlinux.uio.no med brukeren user, men denne påloggingen vil gå via. login.uio.no med brukeren brukernavn.

Dette er mest nyttig for bærbare macOS- eller Linux-maskiner. Normalt sett vil de fleste også ha samme brukernavn på ProxyJump-maskin, som på sin lokale klient.

ControlMaster

Host *
        ControlMaster auto
        ControlPath /tmp/%r@%h:%p
        Compression yes
        ControlPersist 10m
        ForwardX11 no

Kommandoen gjelder alle forbindelser, som da settes opp med ControlMaster. Ved førstegangsinnlogging til en maskin, så vil den første innloggingen være Master. I dette tilfellet opprettes en socket i /tmp med navn bruker@remote.host:port.

Når du logger inn en ny sesjon til samme maskin, eller kopierer en fil i et annet vindu, vil du ikke bli avkrevd ny innlogging. Det lages en ny kanal i samme sesjon, noe som sparer deg for mange innlogginger. Når den første sesjonen stenger må du logge inn på nytt.

Compression yes setter på komprimering for hele sesjonen.

ControlPersists 10m gjør at ControlMaster sessjonen holdes oppe 10 minutter etter siste utlogging. Dvs. at om en kommer i skade for å stenge den sessjonen som var innloggingssessjonen, så kan en ila. 10 minutter logge inn igjen uten å måtte oppgi passord og evt. to-faktor kode på nytt.

ForwardX11 er en annen opsjon som vil treffe alle bortsett fra uioproxy, som setter denne til en annen verdi.

Konfigurasjon av enkeltpålogging ved hjemmekontor

Per dags dato kreves det tofaktorautentisering for å logge inn på login.uio.no. Denne seksjonen viser et eksempeloppsett på hvordan gjøre innlogginsopplevelsen fra hjemmekontoret enda bedre. Målet er

  • Tillate korte avbrud i sessjonen
  • Autentisering med tofaktor og offentlig nøkkel

Alle stegene under utføres på hjemmemaskinen, og som i resten av seksjonen forutsetter dette enten en maskin hjemme med enten linux eller mac som operativsystem.

  1. Opprett controlmaster mappe
    mkdir ~/.ssh/controlmasters
    
  2. Oppretter ny ssh-nøkkel
    ssh-keygen -o -a 256 -t ed25519 \
        -C "$(hostname)-$(date +'%d-%m-%Y')" \
        -f ~/.ssh/"$(hostname -s)_ed25519" \
        -q 
    
    Dette opprette en nøkkel med ditt vertsnavn (hostname) som navn på filen. Vertsnavnet her er altså hva du har kalt maskinen din hjemme.

    Sjekk at rettighetene er riktig på ~/.ssh og ~/.ssh/*
     
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/*
            
  3. Vi kan så oppdatere ~/.ssh/config til å bruke nøkkelen vi akkuratt har opprettet
    Host login
        Hostname login.uio.no
        User brukernavn
        IdentityFile ~/.ssh/vertsnavn_ed25519
        IdentitiesOnly yes
    
    Host kontor
        Hostname vertsnavn.uio.no
        User brukernavn
        Proxyjump login 
        IdentityFile ~/.ssh/vertsnavn_ed25519
        IdentitiesOnly yes
    
    Host *
        ControlMaster auto
        ControlPath ~/.ssh/controlmasters/%r@%h:%p
        Compression yes
        ControlPersist 10m
        ForwardX11 no
    
    Husk å endre brukernavn til ditt faktiske brukernavn! Samme med vertsnavn. Lagre filen og test at ssh kontor fungerer fint. Merk at vi enda må skrive både passord og brukernavn for å logge inn hjemmefra.
  4. Vi er nå klare til å legge inn den offentlige nøkkelen din på springbrettmaskinen (login)
    ssh-copy-id -i ~/.ssh/vertsnavn_ed25519 login
    
    og på kontormaskinen
    ssh-copy-id -i ~/.ssh/vertsnavn_ed25519 kontor
    Test at du nå kan logge inn med ssh kontor.

SSH og tmux

Noen brukere er glad i å bruke tmux på kontoret, og da kan det være greit å slippe å måtte logge inn på tmux hver gang man logger inn. Da kan man legge til

shmux () {
    tmux_target_session="${1:-0}"
    host_target="${2:-kontor}"
    ssh -t "${host_target}" "tmux new-session -A -s \"${tmux_target_session}\""
}

I skallet sitt, f.eks ~/.bashrc, ~/.zshrc avhengig av hva man bruker. Etter man har åpnet ett nytt vindu, eller sourcet filen (source ~/.bashrc) gir kommandoen deg muligheten til å logge rett inn via enten

shmux

Eller så kan man oppgi en tmux-session

shmux prosjektnavn

Eller tmux-session og et vertsnavn.

shmux prosjektnavn vertsnavn

Oppsett på Windows

Vær nøye med å finne rett mappe og sørg for at konfigurasjonsfilene lagres uten filending.

Rett sted for den innbygde ssh klienten er: C:\Users\<brukernavn>\.ssh\config

Oppsett av PuTTY

Mange benytter PuTTY som SSH-klient på Windows. I Putty kan man skru på de fleste opsjoner som er nevnt over, men oppsettet lagres i sesjoner. Alle settinger gjøres pr. host.

Innlogging til maskiner på UiO utenfra må skje via login.uio.no, rlogin.uio.no eller en annen jumphost med multifaktor satt opp.  PuTTY støtter dette fra og med versjon 0.77 (stable).

1. Lag en ny session i PuTTY

lag en ny putty sesjon

Skriv inn hostnavn for maskinen du ønsker å logge inn på, og oppgi port 22.

2. Proxy innstillinger

Velg riktig remote kommando

Under Proxy-opsjonen velg proxy-type SSH, skriv inn navn på jumphost, og port nr (22). PuTTY vil etter første hopp (login.uio.no) forsøke å logge på kontormaskin.uio.no.

3. Lagre oppsettet

Gå tilbake til Session og lagre oppsettet.

Lagre Putty sesjon

Ved pålogging så vil du først bli spurt om brukernavn og passord til første hopp, det vil si uio-brukernavn og passord på login.uio.no, og så om brukernavn og passord til neste hopp som er kontormaskin.uio.no.

Søk i veiledningene
Kontakt brukerstøtte:

Ring oss

Vi har åpent mellom 08:30 og 17:00 på hverdager,
og mellom 10:00 og 15:00 på lørdager.

Telefonnummer: 22 84 00 04

Send inn sak til oss

Du kan sende inn din forespørsel via e-post til: it-support@uio.no.

Gå til e-post

Book et videomøte over Zoom

Er du student eller ansatt kan du avtale veiledningstime hos UiO Helpdesk over Zoom. Tilgjengelige tider er tirsdag til torsdag mellom 11:00 og 13:00.

Book et videomøte

Chat med oss

Vår chat er bemannet mellom 09:00 og 16:00 på hverdager.

Åpne chat
Publisert 13. aug. 2021 14:08 - Sist endret 4. juni 2024 21:16