Annons

Hur man autentiserar över SSH med nycklar istället för lösenordsnyckelSSH är ett utmärkt sätt att få fjärråtkomst till din dator. I likhet med FTP kan du ansluta över SSH FTP Vad SSH är och hur det skiljer sig från FTP [Teknik förklaras] Läs mer för att få säker åtkomst till en filserver med din favorit FTP-klient Master FTP-filöverföringar på alla dina webbplatser med FileZillaEtt stort antal gamla FTP-klienter hade hicka när det gällde stora filöverföringar. Apparna upplevde de vanliga timeouts som du kan förvänta dig när datorn sitter där i 15 till... Läs mer , snabb åtkomst till fjärrfiler eller till och med montera en nätverksdisk på din dator. Men det finns mer med SSH än fjärråtkomst till filer. Logga in över SSH i Terminal (eller använda Spackel på Windows) ger dig fjärråtkomst till skalet (SSH är trots allt en förkortning för Secure SHell). Det är så jag hanterar min mediaserver på avstånd.

När du öppna portarna Vad är Port Forwarding och hur kan det hjälpa mig? [MakeUseOf förklarar]Gråter du lite inombords när någon säger till dig att det finns ett problem med portvidarebefordran och det är därför din nya glänsande app inte fungerar? Din Xbox låter dig inte spela spel, dina torrentnedladdningar vägrar...

Läs mer på din router (port 22 för att vara exakt) kan du inte bara komma åt din SSH-server från ditt lokala nätverk, utan 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 inget vi vill ha. Lyckligtvis är det väldigt enkelt 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 detta för mig?

Det är frestande att bli slapp med personlig säkerhet. Om du använder servern för privata medel, kanske du tror att folk helt enkelt inte känner till din server och därför inte kommer att försöka hacka den - säkerhet genom dunkel. Det skulle vara en mycket fel antagande. Eftersom (de flesta) SSH-trafik sänds på port 22, kontrollerar angripare rutinmässigt synligheten för port 22 på slumpmässiga IP-adresser, följt av en brute force-attack. Detta är ett av sätten som botnät är gjorda för att användas i DDOS-attacker Vad är en DDoS-attack? [MakeUseOf förklarar]Termen DDoS visslar förbi närhelst cyberaktivism reser upp huvudet en-masse. Den här typen av attacker skapar internationella rubriker på grund av flera skäl. Problemen som startar dessa DDoS-attacker ä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 över internet (d.v.s. vidarebefordra port 22), så är det här för dig.

Idén med nyckelbaserade SSH-inloggningar

Nyckelbaserade SSH-inloggningar bygger på idén om publik nyckelkryptering. Det skulle ta oss för långt att förklara krångligheterna, men vi ska försöka måla upp 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 bara dekryptera den med den privata nyckeln. Vi lägger den publika 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 kommer vi att ställa in en SSH-server med OpenSSH. Om du redan har en SSH-server igång och bara vill veta hur du ställer in nyckelbaserad autentisering kan du hoppa över det här steget. Använd din favoritpakethanterare för att installera OpenSSH-serverapplikationen. Det enklaste sättet kan fortfarande vara att köra apt-get kommandot från terminalen.

sudo apt-get installera openssh-server

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

ubuntu-install-openssh

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

2. Generera nycklar

Vi genererar en uppsättning nycklar. Kör följande kommandon (anpassade från OpenSSH/Keys Ubuntu Hjälpsida).

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 av RSA nycklar. Du kommer först att bli tillfrågad om en plats för att spara nycklarna (lämna tomt och tryck på enter för att spara på standardplatsen) och sedan för en lösenfras.

rsa-nyckel-generation-mac

Denna lösenfras krypterar ytterligare den privata nyckeln som är lagrad på din dator, vilket ger dig mer tid att säkra SSH-servern om din privata nyckel någonsin skulle bli stulen. Se till att du väljer en lösenordsfras som du kan komma ihåg, eftersom du måste ange den när du försöker använda din nyckel.

3. Överför den offentliga nyckeln

Därefter måste du överföra den publika nyckeln som du genererade i föregående steg till SSH-serverdatorn. Om din klientdator också kör Linux, kan detta uppnås mycket enkelt genom att köra kommandot nedan (ersätter 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 ger i princip samma resultat.

cat ~/.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 körs utan fel kommer din publika nyckel att ha 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 att använda nyckelbaserad autentisering, lämnar detta fortfarande utrymme för andra klienter att ansluta med 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 fil i din favoritredigerare. Ett av de enklaste sätten att redigera en begränsad fil är, återigen, att använda Terminal. (Jag är partisk för nano, men du kan använda vad du är mest bekväm med.)

sudo nano /etc/ssh/sshd_config

Cirka 40 rader från botten av filen hittar du

#PasswordAuthentication ja

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

Lösenordsautentiseringsnr

Den slutliga filen bör se ut ungefär så här:

sshd_config

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

sudo starta om ssh

Du kommer också att märka att din klient kommer att sluta be om lösenordsfrasen för att dekryptera din nyckel om lösenordsautentisering är inaktiverat 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 kommentarsfältet nedan!

Bildkredit: Shutterstock

Jag är författare och datavetenskapsstudent från Belgien. Du kan alltid göra mig en tjänst med en bra artikelidé, bokrekommendation eller receptidé.