Så här autentiserar du över SSH med nycklar istället för lösenord

Så här autentiserar du över SSH med nycklar istället för lösenord / Linux

SSH är ett utmärkt sätt att få fjärråtkomst till din dator. Liknande FTP, kan du ansluta via SSH FTP Vad SSH är och hur det skiljer sig från FTP [Teknologi förklaras] Vad SSH är och hur det skiljer sig från FTP [Teknologi förklaras] Läs mer för att få säker tillgång till en filserver med din favorit FTP klientmästare FTP-filöverföringar på alla dina webbplatser med FileZilla Master FTP-filöverföringar på alla dina webbplatser med FileZilla Ett stort antal FTP-klienter från gamla hade en hicka när det gällde stora filöverföringar. Apparna upplevde de vanliga tidsavbrott som du kan förvänta dig när datorn sitter där för 15 till ... Läs mer, snabbt åtkomst till fjärranslutna filer eller till och med montering av en nätverksdisk till din dator. Men det finns mer att SSH än fjärrfilåtkomst. Logga in över SSH i Terminal (eller med hjälp av PuTTY på Windows) ger dig åtkomst till fjärrkontrollen (trots allt är SSH kort för Secure SHell). Det är hur jag hanterar min medieserver från ett avstånd.

När du öppnar portarna Vad är port vidarebefordran och hur kan det hjälpa mig? [MakeUseOf Explains] Vad är port vidarebefordran och hur kan det hjälpa mig? [MakeUseOf Explains] Skriker du lite inuti när någon säger att det finns ett portproblem och det är därför att din glänsande nya app inte fungerar? Din Xbox kommer inte att låta dig spela spel, dina torrentladdningar vägrar ... Läs mer på din router (port 22 för att vara exakt) du kan inte bara komma åt din SSH-server från ditt lokala nätverk, men från var som helst i världen.

Du vill dock inte riskera att använda ett svagt lösenord för autentisering. Om någon får tillgång till din dator via SSH, får de fullständig skalåtkomst. Bara för att vara tydlig, det är inte något vi vill ha. Lyckligtvis är det väldigt lätt att ställa in din globala SSH-server på ett mycket säkert sätt genom att använda nyckelbaserad autentisering och inaktivera lösenordsautentisering på din server helt och hållet.

Är det här för mig?

Det är frestande att växa lax med personlig säkerhet. Om du använder servern för privata medel kanske du tror att folk helt enkelt inte vet om din server och därmed inte kommer att försöka hacka det - säkerhet genom obskärlighet. Det skulle vara en mycket felaktigt antagande. Eftersom (mest) SSH-trafik överförs på port 22 kontrollerar angriparna rutinmässigt synligheten hos port 22 på slumpmässiga IP-adresser, följt av en brute force attack. Detta är ett av sätt botnets är gjorda för användning i DDOS-attacker Vad är ett DDoS-angrepp? [MakeUseOf Förklarar] Vad är ett DDoS Attack? [MakeUseOf Explains] Termen DDoS visslar förbi när cyberaktivism ger upp huvudet en massa. Dessa typer av attacker gör internationella rubriker på grund av flera anledningar. De problem som hoppa över de DDoS-attackerna är ofta kontroversiella eller mycket ... Läs mer .

För att göra en lång historia kort: Om du sänder din SSH-server via internet (dvs framåtport 22), ja, det här är för dig.

Idén med nyckelbaserade SSH-inloggningar

Nyckelbaserade SSH-inloggningar bygger på idén om public key-kryptering. Det skulle ta oss för långt för att förklara invecklingarna, men vi ska försöka måla en enkel bild av vad som händer bakom kulisserna.

I processen nedan genererar din klientdator två nycklar: en offentlig nyckel och en privat nyckel. Den allmänna idén är att du kan kryptera data med den offentliga nyckeln, men dekryptera den bara med den privata nyckeln. Vi lägger den offentliga nyckeln på servern och ber den att kryptera all utgående kommunikation med den. Detta säkerställer att endast de klienter med den privata nyckeln kan dekryptera och läsa data.

1. Installera OpenSSH

Först ska vi skapa en SSH-server med OpenSSH. Om du redan har en SSH-server som kör och bara vill veta hur du konfigurerar nyckelbaserad autentisering kan du hoppa över det här steget. Använd din favoritpakethanterare för att installera OpenSSH-serverns program. Det enklaste sättet kan fortfarande vara att springa apt-get kommando från terminalen.

sudo apt-get install openssh-server

Ange ditt lösenord, bekräfta och vänta en minut för att slutföra installationen. Grattis, du har nu en SSH-server. (Det var enkelt!)

Du kan antingen använda programmet som-är eller redigera / Etc / ssh / sshd_config att konfigurera den. Springa det man sshd_config kommandot i Terminal för att få mer information. En annan stor resurs för att lära dig mer om OpenSSH är den relevanta Ubuntu-hjälpsidan.

2. Generera nycklar

Vi genererar en uppsättning nycklar. Kör följande kommandon (anpassad från sidan OpenSSH / Keys Ubuntu Help).

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

Det första kommandot skapar en dold katalog ".ssh" i din hemmapp, det andra kommandot ändrar åtkomstbehörigheterna för mappen medan det tredje kommandot faktiskt genererar en uppsättning RSA-nycklar. Du blir först uppmanad till en plats att spara nycklarna (lämna tomt och tryck på enter för att spara i standardplatsen) och andra för en lösenordsfras.

Detta lösenfras krypterar vidare den privata nyckeln som lagras på din dator, vilket i huvudsak ger dig mer tid att säkra SSH-servern om din privata nyckel någonsin stulits. Se till att du väljer ett lösenfras som du kan komma ihåg, eftersom du måste skriva in det när du försöker använda din nyckel.

3. Överför den offentliga nyckeln

Därefter måste du överföra den offentliga nyckeln du genererade i föregående steg till SSH-serverns dator. Om din klientmaskin också kör Linux kan detta uppnås mycket enkelt genom att köra kommandot nedan (ersättning och för användarnamnet och IP-adressen på din SSH-server).

ssh-copy-id @

Om din klient inte stöder kommandot ssh-copy-id kan du använda kommandot nedan istället. Det är lite mer invecklat, men uppnår i huvudsak samma resultat.

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

Du kommer att bli ombedd att ange användarlösenordet för SSH-servern. Om kommandona exekveras utan fel har din allmänna nyckel kopierats till servern.

4. Inaktivera lösenordsautentisering

Observera att ditt system fortfarande inte är säkrare än efter steg ett. Även om minst en klient är konfigurerad för att använda nyckelbaserad autentisering, lämnar detta fortfarande utrymme för att andra kunder kan ansluta till ett lösenord. För att avsluta kommer vi att inaktivera lösenordsautentisering helt och hållet. Efter detta steg, endast datorer som har gått igenom ovanstående process kan ansluta till din SSH-server.

För att inaktivera lösenordsautentisering, redigera / Etc / ssh / sshd_config filen i din favoritredigerare. Ett av de enklaste sätten att redigera en begränsad fil är igen, med hjälp av Terminal. (Jag är partiell i nano, men du kan använda vad du är mest bekväm med.)

sudo nano / etc / ssh / sshd_config

Omkring 40 linjer från botten av filen hittar du

#PasswordAuthentication ja

Ta bort talteckenet (#) och ändra inställningen till "nej", som nedan.

PasswordAuthentication nr

Den slutliga filen ska se ut så här:

Spara filen genom att trycka på CTRL + X. Bekräfta redigeringen och filnamnet, och du är nästan klar. Starta bara SSH-servern för att köra den med dessa nya inställningar.

sudo starta om ssh

Du kommer också märka att din klient kommer sluta be om lösenordsfras för att dekryptera din nyckel om lösenordsautentisering är avaktiverad på servern. Nu när du har en säker SSH-server, hur tänker du använda den? Som en säker filserver, ett fjärrskal eller för att vidarebefordra andra tjänster över SSH? Låt oss veta i kommentarfältet nedan!

Bildkredit: Shutterstock

Utforska mer om: Online-säkerhet, fjärråtkomst.