Slik godkjenner du over SSH med nøkler i stedet for passord

Slik godkjenner du over SSH med nøkler i stedet for passord / Linux

SSH er en fin måte å få ekstern tilgang til datamaskinen din. Ligner på FTP, kan du koble over SSH FTP. Hva SSH er og hvordan det er forskjellig fra FTP [Teknologi forklart]. Hva SSH er og hvordan det er annerledes fra FTP [Teknologi forklart] Les mer for å få sikker tilgang til en filserver med din favoritt FTP klient Master FTP-filoverføringer på alle webområdene dine med FileZilla Master FTP-filoverføringer på alle nettstedene dine med FileZilla Et stort antall FTP-klienter fra gamle hadde hikke når det gjaldt store filoverføringer. Appene opplevde de vanlige timeoutene som du forventer når datamaskinen sitter der for 15 til ... Les mer, raskt tilgang til eksterne filer, eller til og med å montere en nettverksdisk til datamaskinen. Men det er mer å SSH enn ekstern filtilgang. Logg inn over SSH i Terminal (eller ved hjelp av PuTTY på Windows) gir deg ekstern shell tilgang (tross alt, SSH er kort for Secure SHell). Det er hvordan jeg administrerer medieserveren min på avstand.

Når du åpner portene Hva er port videresending og hvordan kan det hjelpe meg? [MakeUseOf Forklarer] Hva er port videresending og hvordan kan det hjelpe meg? [MakeUseOf Forklarer] Skriker du litt innvendig når noen forteller deg at det er et problem med portoverføring, og derfor vil din skinnende nye app ikke fungere? Din Xbox vil ikke la deg spille spill, dine torrentnedlastinger nekter ... Les mer på ruteren din (port 22 for å være nøyaktig) du kan ikke bare få tilgang til SSH-serveren din fra ditt lokale nettverk, men fra hvor som helst i verden.

Du vil imidlertid ikke risikere å bruke et svakt passord for godkjenning. Hvis noen får tilgang til datamaskinen din over SSH, får de fullstendig tilgang til shell. Bare for å være klar, det er ikke noe vi vil ha. Heldigvis er det veldig enkelt å sette opp din globale SSH-server på en svært sikker måte ved å bruke nøkkelbasert autentisering og deaktivere passordautentisering på serveren din helt og holdent.

Er dette for meg?

Det er fristende å vokse lax med personlig sikkerhet. Hvis du bruker serveren for private midler, kan du kanskje tro at folk bare ikke vet om serveren din og dermed ikke vil prøve å hack det - sikkerhet gjennom uklarhet. Det ville være en veldig feil antagelse. Fordi (mest) SSH-trafikk overføres på port 22, kontrollerer angriperne rutinemessig synligheten til port 22 på tilfeldige IP-adresser, etterfulgt av et brute force attack. Dette er en av måtene botnets er laget for bruk i DDOS-angrep. Hva er et DDoS-angrep? [MakeUseOf Forklarer] Hva er et DDoS-angrep? [MakeUseOf Forklarer] Begrepet DDoS plystre forbi når cyberaktivisme reagerer opp hodet en masse. Disse typer angrep gjør internasjonale overskrifter på grunn av flere grunner. Problemene som hopper på de DDoS-angrepene er ofte kontroversielle eller svært ... Les mer .

For å lage en lang historie kort: Hvis du sender din SSH-server over internett (dvs. fremre port 22), så ja, dette er for deg.

Ideen til nøkkelbaserte SSH-pålogginger

Nøkkelbaserte SSH-logger stole på ideen om offentlig nøkkelkryptografi. Det ville ta oss for langt for å forklare intrikatene, men vi vil prøve å male et enkelt bilde av hva som skjer bak kulissene.

I prosessen nedenfor genererer klientdatamaskinen to nøkler: en offentlig nøkkel og en privat nøkkel. Den generelle ideen er at du kan kryptere data med den offentlige nøkkelen, men bare dekryptere den med den private nøkkelen. Vi legger den offentlige nøkkelen på serveren og ber den om å kryptere all utgående kommunikasjon med den. Dette sørger for at kun de klientene med den private nøkkelen kan dekryptere og lese dataene.

1. Installer OpenSSH

Først skal vi sette opp en SSH-server ved hjelp av OpenSSH. Hvis du allerede har en SSH-server som kjører og bare vil vite hvordan du konfigurerer nøkkelbasert godkjenning, kan du hoppe over dette trinnet. Bruk din favorittpakkeadministrator til å installere OpenSSH-serverprogrammet. Den enkleste måten kan fortsatt være å kjøre apt-get kommandoen fra terminalen.

sudo apt-get installer openssh-server

Skriv inn passordet ditt, bekreft og vent et minutt for å fullføre installasjonen. Gratulerer, du har nå en SSH-server. (Det var lett!)

Du kan enten bruke programmet som-er, eller redigere / Etc / ssh / sshd_config å konfigurere det. Kjør mann sshd_config kommandoen i Terminal for å få mer informasjon. En annen stor ressurs for å lære mer om OpenSSH er den relevante Ubuntu-hjelpesiden.

2. Generer nøkler

Vi genererer et sett med nøkler. Kjør følgende kommandoer (tilpasset fra OpenSSH / Keys Ubuntu Help-siden).

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

Den første kommandoen skaper en skjult katalog '.hs' i din hjemmemappe, den andre kommandoen endrer tilgangstillatelsene til mappen mens den tredje kommandoen faktisk genererer et sett med RSA-nøkler. Du blir først bedt om en plassering for å lagre tastene (la blank og trykk enter for å lagre i standardplasseringen) og andre for en passordfrase.

Denne passordet krypterer ytterligere privatnøkkelen som er lagret på datamaskinen, noe som gir deg mer tid til å sikre SSH-serveren hvis din private nøkkel blir stjålet. Pass på at du velger en passordfrase som du kan huske, da du må skrive inn den når du prøver å bruke nøkkelen.

3. Overfør den offentlige nøkkelen

Deretter må du overføre den offentlige nøkkelen du genererte i forrige trinn til SSH-serverdatamaskinen. Hvis klientmaskinen din også kjører Linux, kan dette oppnås veldig enkelt ved å kjøre kommandoen nedenfor (erstatter og for brukernavnet og IP-adressen på SSH-serveren din).

ssh-copy-id @

Hvis klienten din ikke støtter ssh-copy-id-kommandoen, kan du bruke kommandoen nedenfor i stedet. Det er litt mer innviklet, men oppnår i hovedsak de samme resultatene.

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

Du blir bedt om å skrive inn brukerpassordet for SSH-serveren. Hvis kommandoene kjøres uten feil, vil din offentlige nøkkel blitt kopiert til serveren.

4. Deaktiver passordautentisering

Legg merke til at systemet ditt fortsatt ikke er sikrere enn etter trinn ett. Selv om minst én klient er konfigurert til å bruke nøkkelbasert godkjenning, tillater dette fortsatt rom for andre kunder å koble seg til et passord. For å fullføre, deaktiverer vi passordautentisering helt. Etter dette trinnet, bare datamaskiner som har gått gjennom fremgangsmåten ovenfor, kan koble til SSH-serveren din.

For å deaktivere passordgodkjenning, rediger du / Etc / ssh / sshd_config filen i favorittredigeren din. En av de enkleste måtene å redigere en begrenset fil er igjen, ved hjelp av Terminal. (Jeg er delvis til nano, men du kan bruke det du er mest komfortabel med.)

sudo nano / etc / ssh / sshd_config

Omtrent 40 linjer fra bunnen av filen, finner du

#PasswordAuthentication ja

Fjern tallskiltet (#) og endre innstillingen til "nei", som nedenfor.

PasswordAuthentication nr

Den endelige filen skal se slik ut:

Lagre filen ved å trykke CTRL + X. Bekreft redigeringen og filnavnet, og du er nesten ferdig. Bare start SSH-serveren for å kjøre den med disse nye innstillingene.

sudo restart ssh

Du vil også legge merke til at klienten din slutter å be om passordet for å dekryptere nøkkelen din hvis passordautentisering er deaktivert på serveren. Nå som du har en sikker SSH-server, hvordan har du tenkt å bruke den? Som en sikker filserver, et eksternt skall eller for å videresende andre tjenester over SSH? Gi oss beskjed i kommentarfeltet nedenfor!

Bilde kreditt: Shutterstock

Utforsk mer om: Internett-sikkerhet, ekstern tilgang.