Android

Hur man ställer in lösenordslös ssh-inloggning

Server / Client - SSH Secure Shell

Server / Client - SSH Secure Shell

Innehållsförteckning:

Anonim

Secure Shell (SSH) är ett kryptografiskt nätverksprotokoll som används för säker anslutning mellan en klient och en server och stöder olika autentiseringsmekanismer. De två mest populära mekanismerna är lösenordsbaserad autentisering och offentlig nyckelbaserad autentisering.

I den här tutorialen visar vi dig hur du ställer in en SSH-nyckelbaserad autentisering samt hur du ansluter till din Linux-server utan att ange ett lösenord.

Ställ in SSH-lösenordsfri inloggning

För att ställa in en lösenordsfri SSH-inloggning i Linux behöver du bara generera en offentlig autentiseringsnyckel och lägga till den till ~/.ssh/authorized_keys filen.

Följande steg beskriver processen för att konfigurera lösenordsfri SSH-inloggning:

  1. Sök efter befintligt SSH-nyckelpar.

    Innan du genererar ett nytt SSH-nyckelpar bör du först kontrollera om du redan har en SSH-nyckel på din klientmaskin eftersom du inte vill skriva över dina befintliga nycklar.

    Kör följande ls-kommando för att se om befintliga SSH-nycklar finns:

    ls -al ~/.ssh/id_*.pub

    Om det finns befintliga nycklar kan du antingen använda dessa och hoppa över nästa steg eller ta backup av de gamla nycklarna och skapa en ny.

    Generera ett nytt SSH-nyckelpar.

    Följande kommando genererar ett nytt 4096 bitar SSH-nyckelpar med din e-postadress som en kommentar:

    ssh-keygen -t rsa -b 4096 -C "[email protected]"

    Tryck på Enter att acceptera standardfilplatsen och filnamnet:

    Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

    Därefter ber ssh-keygen verktyget dig att skriva en säker lösenfras. Oavsett om du vill använda lösenfras är det upp till dig, om du väljer att använda lösenfras får du ett extra lager av säkerhet. I de flesta fall använder utvecklare och systemadministratörer SSH utan lösenfras eftersom de är användbara för helautomatiska processer. Om du inte vill använda lösenfras trycker du bara på Enter

    Enter passphrase (empty for no passphrase):

    Hela interaktionen ser ut så här:

    För att vara säker på att SSH-nycklarna genereras kan du lista dina nya privata och offentliga nycklar med:

    ls ~/.ssh/id_*

    /home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

    Kopiera den offentliga nyckeln

    Nu när du har skapat ett SSH-nyckelpar måste du kopiera den offentliga nyckeln till den server du vill hantera för att kunna logga in på din server utan lösenord.

    Det enklaste sättet att kopiera din offentliga nyckel till din server är att använda ett kommando som heter ssh-copy-id . På din lokala maskinterminal typ:

    ssh-copy-id remote_username@server_ip_address

    Du blir ombedd att ange lösenordet för remote_username :

    remote_username@server_ip_address's password:

    När användaren har verifierats läggs den offentliga nyckeln till filen för authorized_keys autoriserad_tangent och anslutningen stängs.

    Om ssh-copy-id verktyget av någon anledning inte är tillgängligt på din lokala dator kan du använda följande kommando för att kopiera den offentliga nyckeln:

    cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

    Logga in på din server med SSH-nycklar

    När du har slutfört stegen ovan bör du kunna logga in på fjärrservern utan att bli ombedd om ett lösenord.

    För att testa det, försök bara logga in på din server via SSH:

    ssh remote_username@server_ip_address

    Om allt gick bra kommer du att logga in omedelbart.

Inaktiverar SSH-lösenordsautentisering

För att lägga till ett extra lager av säkerhet på din server kan du inaktivera lösenordsverifiering för SSH.

Innan du inaktiverar autentiseringen av SSH-lösenord, se till att du kan logga in på din server utan ett lösenord och att användaren du loggar in med har sudo-behörigheter.

Följande handledning beskriver hur du konfigurerar sudo-åtkomst:

  1. Logga in på din fjärrserver med SSH-nycklar, antingen som en användare med sudo-privilegier eller root:

    ssh sudo_user@server_ip_address

    Öppna SSH-konfigurationsfilen /etc/ssh/sshd_config , sök efter följande direktiv och ändra enligt följande:

    / Etc / ssh / sshd_config

    PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no

    När du är klar sparar du filen och startar om SSH-tjänsten.

    Kör följande kommando på Ubuntu- eller Debian-servrar:

    sudo systemctl restart ssh

    Kör följande kommando på CentOS- eller Fedora-servrar:

    sudo systemctl restart sshd

Slutsats

I denna handledning har du lärt dig hur du ställer in en SSH-nyckelbaserad autentisering, så att du kan logga in på din fjärrserver utan att ange ett användarlösenord. Du kan lägga till samma nyckel till flera fjärrserver.

Vi har också visat dig hur du inaktiverar autentisering av SSH-lösenord och lägger till ett extra lager av säkerhet på din server.

ssh säkerhet