Android

Hoe wachtwoordloze ssh login in te stellen

SSH Client on Windows 10 Using the Command Prompt | SSH from Windows to Linux and Other Systems

SSH Client on Windows 10 Using the Command Prompt | SSH from Windows to Linux and Other Systems

Inhoudsopgave:

Anonim

Secure Shell (SSH) is een cryptografisch netwerkprotocol dat wordt gebruikt voor een beveiligde verbinding tussen een client en een server en ondersteunt verschillende authenticatiemechanismen. De twee meest populaire mechanismen zijn op wachtwoorden gebaseerde authenticatie en op publieke sleutels gebaseerde authenticatie.

In deze zelfstudie laten we u zien hoe u een op SSH-sleutel gebaseerde verificatie instelt en hoe u verbinding kunt maken met uw Linux-server zonder een wachtwoord in te voeren.

SSH wachtwoordloos inloggen instellen

Om een ​​wachtwoordloze SSH-login in Linux in te stellen, hoeft u alleen maar een openbare authenticatiesleutel te genereren en deze toe te voegen aan het externe hosts ~/.ssh/authorized_keys .

De volgende stappen beschrijven het proces voor het configureren van wachtwoordloze SSH-aanmelding:

  1. Controleer op bestaand SSH-sleutelpaar.

    Voordat u een nieuw SSH-sleutelpaar genereert, moet u eerst controleren of u al een SSH-sleutel op uw clientcomputer hebt, omdat u uw bestaande sleutels niet wilt overschrijven.

    Voer de volgende ls-opdracht uit om te kijken of bestaande SSH-sleutels aanwezig zijn:

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

    Als er bestaande sleutels zijn, kunt u deze gebruiken en de volgende stap overslaan of een back-up maken van de oude sleutels en een nieuwe genereren.

    Genereer een nieuw SSH-sleutelpaar.

    De volgende opdracht genereert een nieuw 4096-bits SSH-sleutelpaar met uw e-mailadres als reactie:

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

    Druk op Enter om de standaardbestandslocatie en bestandsnaam te accepteren:

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

    Vervolgens vraagt ​​het hulpprogramma ssh-keygen u om een ​​veilige wachtwoordzin te typen. Of u wachtwoordzin wilt gebruiken, het is aan u, als u ervoor kiest om wachtwoordzin te gebruiken, krijgt u een extra beveiligingslaag. In de meeste gevallen gebruiken ontwikkelaars en systeembeheerders SSH zonder wachtwoord omdat ze nuttig zijn voor volledig geautomatiseerde processen. Als u geen wachtwoordzin wilt gebruiken, drukt u op Enter

    Enter passphrase (empty for no passphrase):

    De hele interactie ziet er zo uit:

    Om er zeker van te zijn dat de SSH-sleutels worden gegenereerd, kunt u uw nieuwe privé- en openbare sleutels weergeven met:

    ls ~/.ssh/id_*

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

    Kopieer de openbare sleutel

    Nu u een SSH-sleutelpaar hebt gegenereerd, moet u de openbare sleutel kopiëren naar de server die u wilt beheren om u zonder wachtwoord op uw server te kunnen aanmelden.

    De eenvoudigste manier om uw openbare sleutel naar uw server te kopiëren, is door een opdracht genaamd ssh-copy-id . Op uw lokale machine-terminaltype:

    ssh-copy-id remote_username@server_ip_address

    U wordt gevraagd het wachtwoord voor remote_username te voeren:

    remote_username@server_ip_address's password:

    Nadat de gebruiker is geverifieerd, wordt de openbare sleutel toegevoegd aan het bestand met authorized_keys afstand en wordt de verbinding verbroken.

    Als het hulpprogramma ssh-copy-id om de een of andere reden niet beschikbaar is op uw lokale computer, kunt u de volgende opdracht gebruiken om de openbare sleutel te kopiëren:

    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"

    Log in op uw server met behulp van SSH-sleutels

    Nadat u de bovenstaande stappen hebt voltooid, moet u zich bij de externe server kunnen aanmelden zonder dat u om een ​​wachtwoord wordt gevraagd.

    Om het te testen, probeert u gewoon in te loggen op uw server via SSH:

    ssh remote_username@server_ip_address

    Als alles goed is gegaan, wordt u meteen ingelogd.

SSH-wachtwoordverificatie uitschakelen

Om een ​​extra beveiligingslaag aan uw server toe te voegen, kunt u de wachtwoordverificatie voor SSH uitschakelen.

Voordat u de SSH-wachtwoordverificatie uitschakelt, moet u ervoor zorgen dat u zich zonder wachtwoord bij uw server kunt aanmelden en dat de gebruiker waarmee u zich aanmeldt sudo-rechten heeft.

De volgende tutorials beschrijven hoe sudo-toegang te configureren:

  1. Log in op uw externe server met SSH-sleutels, hetzij als een gebruiker met sudo-rechten of root:

    ssh sudo_user@server_ip_address

    Open het SSH-configuratiebestand /etc/ssh/sshd_config , zoek naar de volgende richtlijnen en wijzig deze als volgt:

    / Etc / ssh / sshd_config

    PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no

    Als u klaar bent, slaat u het bestand op en start u de SSH-service opnieuw.

    Voer op Ubuntu- of Debian-servers de volgende opdracht uit:

    sudo systemctl restart ssh

    Voer op CentOS- of Fedora-servers de volgende opdracht uit:

    sudo systemctl restart sshd

Conclusie

In deze zelfstudie hebt u geleerd hoe u een op SSH-sleutel gebaseerde verificatie instelt, zodat u zich bij uw externe server kunt aanmelden zonder een gebruikerswachtwoord op te geven. U kunt dezelfde sleutel toevoegen aan meerdere externe porties.

We hebben ook laten zien hoe u SSH-wachtwoordverificatie kunt uitschakelen en een extra beveiligingslaag aan uw server kunt toevoegen.

SSH-beveiliging