Sådan godkendes over SSH med nøgler i stedet for adgangskoder

SSH er en fantastisk måde at få fjernadgang til din computer. Når du åbner portene på din router (port 22 for at være præcis), kan du ikke kun få adgang til din SSH-server fra dit lokale netværk, men fra hele verden.

SSH er en fantastisk måde at få fjernadgang til din computer.  Når du åbner portene på din router (port 22 for at være præcis), kan du ikke kun få adgang til din SSH-server fra dit lokale netværk, men fra hele verden.
Reklame

Sådan godkendes over SSH med nøgler i stedet for adgangskoder nøgle SSH er en fantastisk måde at få fjernadgang til din computer. Ligesom FTP, kan du forbinde over SSH FTP. Hvad SSH er og hvordan det er anderledes end FTP [Teknologi forklaret]. Hvad SSH er og hvordan det er anderledes end FTP. [Teknologi forklaret] Læs mere for at få sikker adgang til en filserver med din yndlings FTP klient Master FTP-filoverførsler på alle dine websteder med FileZilla Master FTP-filoverførsler på alle dine websteder med FileZilla Et stort antal FTP-klienter fra gamle havde hikke, når det gjaldt store filoverførsler. Apperne oplevede de sædvanlige timeouts, som man ville forvente, når computeren sidder der i 15 til ... Læs mere, hurtigt adgang til fjernfiler eller endda montering af en netværksdisk til computeren. Men der er mere til SSH end ekstern filadgang. Logge ind via SSH i Terminal (eller ved hjælp af PuTTY på Windows) giver dig adgang til ekstern shell (trods alt er SSH kort for Secure SHell). Det er hvordan jeg styrer min medieserver fra en afstand.

Når du åbner portene Hvad er port videresending, og hvordan kan det hjælpe mig? [MakeUseOf Forklarer] Hvad er port videresending & Hvordan kan det hjælpe mig? [MakeUseOf Forklarer] græder du lidt inde, når nogen fortæller dig, at der er et port forwarding problem, og derfor vil din skinnende nye app ikke virke? Din Xbox vil ikke lade dig spille spil, dine torrent downloads nægter ... Læs mere på din router (port 22 for at være præcis) Du kan ikke kun få adgang til din SSH-server fra dit lokale netværk, men fra hele verden.

Du vil dog ikke risikere at bruge en svag adgangskode til godkendelse. Hvis nogen får adgang til din computer via SSH, får de fuldstændig adgang til shell. Bare for at være klar, det er ikke noget, vi vil have. Heldigvis er det meget nemt at oprette din globale SSH-server på en meget sikker måde ved at bruge nøglebaseret godkendelse og deaktivere adgangskodeautentificering på din server i det hele taget.

Er det for mig?

Det er fristende at vokse lax med personlig sikkerhed. Hvis du bruger serveren til private midler, kan du måske tro, at folk simpelthen ikke kender til din server og dermed ikke vil prøve at hakke det - sikkerhed gennem uklarhed. Det ville være en meget forkert antagelse. Fordi (mest) SSH-trafik overføres på port 22, kontrollerer angriberne rutinemæssigt synligheden af ​​port 22 på tilfældige IP-adresser, efterfulgt af et brutalt kraftangreb. Dette er en af ​​måderne botnets er lavet til brug i DDOS-angreb Hvad er et DDoS-angreb? [MakeUseOf Forklarer] Hvad er et DDoS-angreb? [MakeUseOf Forklarer] Betegnelsen DDoS fløjter forbi, når cyberaktivisme reagerer på hovedet en masse. Disse slags angreb gør internationale overskrifter på grund af flere grunde. De problemer, der hopper på disse DDoS-angreb, er ofte kontroversielle eller stærkt ... Læs mere.

At lave en lang historie kort: Hvis du sender din SSH-server over internettet (dvs. fremad port 22), så ja, det er for dig.

Ideen til Key-Based SSH Log-ins

Nøglebaserede SSH logins er baseret på ideen om public key kryptografi. Det ville tage os for langt at forklare indviklingen, men vi vil forsøge at male et simpelt billede af, hvad der foregår bag kulisserne.

I processen nedenfor genererer din klientcomputer to nøgler: en offentlig nøgle og en privat nøgle. Den generelle idé er, at du kan kryptere data med den offentlige nøgle, men kun dekryptere den med den private nøgle. Vi sætter den offentlige nøgle på serveren og beder den om at kryptere al udgående kommunikation med den. Dette sikrer, at kun de klienter med den private nøgle kan dekryptere og læse dataene.

1. Installer OpenSSH

For det første skal vi oprette en SSH-server ved hjælp af OpenSSH. Hvis du allerede har en SSH-server kørende og bare vil vide, hvordan du opretter nøglebaseret godkendelse, kan du springe over dette trin. Brug din favoritpakkeadministrator til at installere OpenSSH-serverprogrammet. Den enkleste måde kan stadig være at køre apt-get- kommandoen fra Terminal.

sudo apt-get install openssh-server

Indtast dit kodeord, bekræft og vent et øjeblik for at afslutte installationen. Tillykke med, du har nu en SSH-server. (Det var nemt!)

ubuntu-install-openssh

Du kan enten bruge programmet som-er eller redigere /etc/ssh/sshd_config at konfigurere det. Kør man sshd_config kommandoen i Terminal for at få flere oplysninger. En anden stor ressource til at lære mere om OpenSSH er den relevante Ubuntu-hjælpeside.

2. Generer nøgler

Vi genererer et sæt nøgler. Kør følgende kommandoer (tilpasset fra OpenSSH / Keys Ubuntu Help side).

mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa

Den første kommando opretter en skjult mappe '.ssh' i din hjemmemappe, den anden kommando ændrer adgangsrettighederne for mappen, mens den tredje kommando faktisk genererer et sæt RSA-nøgler. Du bliver først bedt om en placering for at gemme nøglerne (slip blank og tryk enter for at gemme i standardplaceringen) og andet for en adgangskode.

Denne adgangskode krypterer yderligere den private nøgle, der er gemt på din computer, hvilket giver dig mere tid til at sikre SSH-serveren, hvis din private nøgle nogensinde bliver stjålet. Sørg for at vælge en adgangskode, du kan huske, da du bliver nødt til at indtaste den, når du forsøger at bruge din nøgle.

3. Overfør den offentlige nøgle

Derefter skal du overføre den offentlige nøgle, du genererede i det foregående trin til SSH-servercomputeren. Hvis din klientmaskin også kører Linux, kan dette opnås meget nemt ved at køre nedenstående kommando (erstatning og brugernavn og IP-adresse på din SSH-server).

ssh-copy-id @

Hvis din klient ikke understøtter kommandoen ssh-copy-id, kan du bruge kommandoen nedenfor. Det er lidt mere indviklet, men opnår i det væsentlige de samme resultater.

cat ~/.ssh/id_rsa.pub | ssh @ "mkdir ~/.ssh; cat>>~/.ssh/authorized_keys"

Du bliver bedt om at indtaste brugeradgangskoden til SSH-serveren. Hvis kommandoerne udføres uden fejl, er din offentlige nøgle blevet kopieret til serveren.

4. Deaktiver Password Authentication

Bemærk, at dit system stadig ikke er mere sikkert end efter trin et. Selv om mindst en klient er konfigureret til at bruge nøglebaseret godkendelse, giver dette stadig plads til, at andre klienter kan oprette forbindelse til et kodeord. For at afslutte, deaktiverer vi fuldstændigt adgangskodeautentificering. Efter dette trin kan kun computere, der har gennemgået ovennævnte proces, oprette forbindelse til din SSH-server.

For at deaktivere godkendelse af adgangskode skal du redigere filen /etc/ssh/sshd_config i dit foretrukne editor. En af de nemmeste måder at redigere en begrænset fil på, er igen at bruge Terminal. (Jeg er delvis til nano, men du kan bruge det, du er mest komfortabel med.)

sudo nano /etc/ssh/sshd_config

Ca. 40 linjer fra bunden af ​​filen finder du

#PasswordAuthentication yes

Fjern talesignalet (#), og skift indstillingen til 'nej' som nedenfor.

PasswordAuthentication no

Den endelige fil skal se sådan ud:

sshd_config

Gem filen ved at trykke på CTRL + X. Bekræft redigering og filnavn, og du er næsten færdig. Bare genstart SSH-serveren for at køre den med disse nye indstillinger.

sudo restart ssh

Du vil også bemærke, at din klient vil stoppe med at bede om adgangskoden til at dekryptere din nøgle, hvis adgangskodeautentificering er deaktiveret på serveren. Nu hvor du har en sikker SSH-server, hvordan har du til hensigt at bruge den? Som en sikker filserver, en ekstern shell eller at videresende andre tjenester over SSH? Lad os vide i kommentarfeltet nedenfor!

Billedkredit: Shutterstock

In this article