Android

Hoe ssh-toetsen op centos in te stellen 7

How to generate an SSH Key on Centos 7 | RHEL7

How to generate an SSH Key on Centos 7 | RHEL7

Inhoudsopgave:

Anonim

Secure Shell (SSH) is een cryptografisch netwerkprotocol dat is ontworpen voor een veilige verbinding tussen een client en een server.

De twee meest populaire SSH-authenticatiemechanismen zijn op wachtwoord gebaseerde authenticatie en op publieke sleutels gebaseerde authenticatie. Het gebruik van SSH-sleutels is over het algemeen veiliger en handiger dan traditionele wachtwoordverificatie.

In deze zelfstudie wordt uitgelegd hoe u SSH-sleutels op CentOS 7-systemen kunt genereren. We laten u ook zien hoe u een op SSH-sleutel gebaseerde verificatie instelt en verbinding maakt met uw externe Linux-servers zonder een wachtwoord in te voeren.

SSH-sleutels maken op CentOS

Voordat u een nieuw SSH-sleutelpaar genereert, is het een goed idee om te controleren op bestaande SSH-sleutels op uw CentOS-clientmachine.

Voer hiervoor de volgende ls-opdracht uit die alle openbare sleutels weergeeft als die er zijn:

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

Als de uitvoer van de opdracht zoiets retourneert als No such file or directory of no matches found , betekent dit dat u geen SSH-sleutels op uw clientcomputer hebt en kunt u doorgaan met de volgende stap en SSH-sleutelpaar genereren.

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

Begin met het genereren van een nieuw 4096-bits SSH-sleutelpaar met uw e-mailadres als reactie:

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

U wordt gevraagd om de bestandsnaam op te geven:

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

Druk op Enter om de standaardbestandslocatie en bestandsnaam te accepteren.

Vervolgens wordt u gevraagd om een ​​veilige wachtwoordzin te typen. Of u een wachtwoordzin wilt gebruiken, het is aan u. Als u ervoor kiest om een ​​wachtwoordzin te gebruiken, krijgt u een extra beveiligingslaag.

Enter passphrase (empty for no passphrase):

De hele interactie ziet er zo uit:

Typ het volgende om te controleren of uw nieuwe SSH-sleutelpaar is gegenereerd:

ls ~/.ssh/id_*

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

Kopieer de openbare sleutel naar CentOS Server

Nu het SSH-sleutelpaar is gegenereerd, is de volgende stap het kopiëren van de openbare sleutel naar de server die u wilt beheren.

De eenvoudigste en aanbevolen manier om de openbare sleutel naar de externe server te kopiëren, is met behulp van een hulpprogramma 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:

Typ het wachtwoord en zodra de gebruiker is geverifieerd, wordt de openbare sleutel ~/.ssh/id_rsa.pub toegevoegd aan het bestand ~/.ssh/authorized_keys van de externe gebruiker. De verbinding wordt verbroken.

Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'username@server_ip_address'" and check to make sure that only the key(s) you wanted were added.

Als het hulpprogramma ssh-copy-id niet beschikbaar is op uw lokale computer, gebruikt u de volgende opdracht 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.

Probeer om in te loggen op uw server via SSH:

ssh remote_username@server_ip_address

SSH-wachtwoordverificatie uitschakelen

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

Controleer voordat u doorgaat of u zich bij uw server zonder wachtwoord kunt aanmelden als een gebruiker met sudo-rechten.

Volg de onderstaande stappen om SSH-wachtwoordverificatie uit te schakelen:

  1. Log in op uw externe server:

    ssh sudo_user@server_ip_address

    Open het SSH-configuratiebestand /etc/ssh/sshd_config met uw teksteditor:

    sudo nano /etc/ssh/sshd_config

    Zoek naar de volgende richtlijnen en wijzig deze als volgt:

    / Etc / ssh / sshd_config

    PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no

    Sla het bestand op en start de SSH-service opnieuw door het volgende te typen:

    sudo systemctl restart ssh

Op dit moment is de op wachtwoord gebaseerde authenticatie uitgeschakeld.

Conclusie

In deze zelfstudie hebt u geleerd hoe u een nieuw SSH-sleutelpaar kunt genereren en een op SSH-sleutel gebaseerde verificatie kunt instellen. U kunt dezelfde sleutel toevoegen aan meerdere externe servers.

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

Standaard luistert SSH op poort 22. Het wijzigen van de standaard SSH-poort vermindert het risico op geautomatiseerde aanvallen.

centos ssh-beveiliging