Forbinde til serveren med SSH

Vi skal have forbindelse til vores server og med vores VPN forbindelse er det relativt simpelt at forbinde til den med SSH

Vi kan bruge nogle forskellige programmer, süsom PuTTY eller MobaXterm. De er ikke specielt ressourcekrÌvende og generelt tÌnkt som en enkelt müde at forbinde. Her arbejder vi kun i terminalen, hvilket godt kan vÌre lidt besvÌrligt, hvis man ikke har prøvet det før. Hvis man ikke har prøvet nano, vi eller vim, anbefaler jeg at man bruger Visual Studie Code med Remote Explorer udvidelsen

Vi kan bruge Remote Explorer til at forbinde til eksterne serverer, primĂŚrt med SSH.

Vi bruger det blandt andet, til at forbinde til vores DH-Datacenter.

image.png

image.png

Remote Explorer hjÌlper os med at holde styr pü vores forbindelser. Vi kan gemme IP-adresser og bruger navne, sü vi kun skal huske vores password. Det gør det nemt og hurtigt at bruge!

Vi opretter en ny forbindelse SSH forbindelse pü følgende format {User}@{IP}, eksempel fra billedet før er administrator@10.135.71.xx. Herefter bliver vi spurgt om hvilket OS vi bruger, vi vÌlger Linux til den her gennemgang. Bagefter acceptere vi vores SHA256 nøgle som er den vÌrdi vi kan bruge til at forbinde til serveren og til sidst skriver vi adgangskoden, typisk Merc1234!. Nu har vi forbindelse og kan bruge alle funktioner i vores IDE.


🔐 SSH

SSH (Secure Shell) er meget mere end bare et login-værktøj — det er en fuld kryptografisk protokol med flere lag af sikkerhed. Her gennemgår vi præcis hvad der sker, når du skriver ssh administrator@10.135.71.xx.


SSH-protokollens tre lag

SSH er bygget op af tre lag ovenpĂĽ TCP/IP:

flowchart TD
    A["SSH Connection Layer (SSH-CONN) — Shell, port forwarding, channels"]
    B["SSH Authentication Layer (SSH-AUTH) — Bruger-autentificering"]
    C["SSH Transport Layer (SSH-TRANS) — Kryptering og nøgleudveksling"]
    D["TCP/IP Port 22 — Netværkstransport"]
    A --> B --> C --> D


SSH Handshake — hvad sker der bag kulisserne?

NĂĽr du opretter forbindelse sker der en hel sekvens af trin, inden du ser en prompt:

sequenceDiagram
  autonumber
  participant C as Din PC
  participant S as Linux Server
  C->>S: TCP SYN (port 22)
  S->>C: TCP SYN-ACK
  S->>C: SSH-2.0-OpenSSH_8.9
  C->>S: SSH-2.0-OpenSSH_9.0
  rect rgb(220, 230, 255)
    Note over C,S: Key Exchange (Diffie-Hellman)
    C->>S: Client algoritmer + DH public key
    S->>C: Server algoritmer + DH public key + host key signatur
    Note over C,S: Begge beregner shared secret uafhĂŚngigt
  end
  rect rgb(210, 250, 210)
    Note over C,S: Krypteret kanal etableret (AES-256)
  end
  rect rgb(255, 245, 210)
    Note over C,S: Authentication Phase
    C->>S: Auth request (publickey)
    S->>C: Public key acceptable?
    C->>S: Signatur med privat nøgle
    S->>C: Authentication successful ✅
  end
  C->>S: Shell request
  S->>C: Shell ready — $ _


Asymmetrisk kryptering — nøgleparrets magi

SSH-nøgler bygger pü asymmetrisk kryptering: to matematisk sammenhÌngende nøgler, hvor det ene ikke kan udledes af det andet:

flowchart LR
  PRI[🔑 Privat nøgle<br/>.ssh/id_ed25519] 
  PUB[🔓 Offentlig nøgle<br/>authorized_keys]
  
  PRI ---|"matematisk<br/>forbundet"| PUB
  
  PRI -->|"signere"| SIG[Signatur]
  PRI -->|"dekryptere"| ENC[Krypteret data]
  PUB -->|"verificere"| SIG
  PUB -->|"kryptere"| ENC

Kerneprincip: Den private nøgle forlader aldrig din PC. Serveren har kun den offentlige nøgle — og den er ubrugelig til at logge ind med.