De belangrijkste manier om verbinding te maken met een Linux-server is via het SSH-protocol . Dit type verbinding is veilig, omdat alle gegevens die erdoor worden overgedragen, versleuteld zijn. Om een SSH-verbinding tot stand te brengen, moet u dit configureren op de externe server waarmee u verbinding wilt maken en op de client aan de kant van de gebruiker. Er is een enorme hoeveelheid software beschikbaar voor SSH-verbindingen. Voor Linux is OpenSSH het populairste pakket, terwijl voor Windows vooral PuTTY wordt gebruikt.
Laten we de serverconfiguratie eens nader bekijken met Ubuntu Server 18.04 als voorbeeld. Vervolgens proberen we verbinding te maken met de server vanaf Linux en Windows.
Alles wat we doen, gebeurt vanuit een gewoon gebruikersaccount. In dit geval hebben we een gebruiker met de naam " mihail " aangemaakt, en het " root "-account is standaard uitgeschakeld.
Server-side-installatie
Stel het pakket in met de volgende opdracht:
sudo apt install openssh-server
Nadat de installatie is voltooid, controleert u of de service actief is. Gebruik deze opdracht:
systemctl status sshd
De status " Actief (draaiend) " betekent dat de service is ingeschakeld en normaal functioneert.
Om te voorkomen dat inkomende verbindingen door de firewall worden geblokkeerd, moet u deze uitschakelen. In dit artikel gaan we de netwerkfirewall namelijk niet configureren.
Gebruik deze opdracht:
sudo ufw disable
In dit stadium kunt u al verbinding maken met de server. Met standaardinstellingen staat de server verbinding toe met de standaardpoort 22 met wachtwoordgebaseerde authenticatie.
SSH-verbinding vanaf Linux
Normaal gesproken is de OpenSSH-client standaard geïnstalleerd op Linux en vereist geen extra handmatige configuratie. Verbinding kan worden gemaakt vanaf de terminal met behulp van de ssh-opdracht. Parameters in dit geval zouden de gebruikersnaam en het IP-adres van de externe server zijn. Op onze testserver die we als voorbeeld gebruiken, is er maar één account "mihail", dus we zullen dit gebruiken.
ssh [email protected]
Bij de eerste verbinding moet u bevestigen dat u de openbare sleutel van de server aan de database wilt toevoegen, dus antwoord met " ja ". Daarna kunt u het wachtwoord invoeren. Als de verbinding succesvol is, ziet u een welkomstbericht op de commandoregel van de server. Nu worden alle commando's direct op de externe server uitgevoerd.
SSH vanaf Windows
Open Putty en stel de verbindingsparameters in. Zorg ervoor dat de schakelaar " Verbindingstype " is ingesteld op SSH . Voer het IP-adres in bij " Hostnaam ", de standaardwaarde 22 bij " Poort " en klik op " Openen ".
Bij de eerste verbinding zal Putty je vragen te bevestigen dat je deze server vertrouwt, dus klik op " Ja ".
Nadat u de gebruikersnaam en het wachtwoord hebt ingevoerd, ziet u de opdrachtregel van de externe server.
Authenticatie via sleutel. Toenemend beveiligingsniveau
Wanneer een client probeert een beveiligde verbinding met de server tot stand te brengen via SSH, voordat de verbinding wordt toegestaan die de server nodig heeft om de client te authenticeren (verifiëren). Zoals eerder vermeld, wordt wachtwoordgebaseerde authenticatie meestal standaard gebruikt. Het biedt geen robuuste beveiliging, omdat er altijd een manier is om het te bruteforcen. Bovendien is wachtwoordauthenticatie niet van toepassing op SSH-verbindingen met behulp van scripts.
Voor dit soort taken is er een speciale authenticatiemethode via sleutel. Het punt is dat de client privé- en openbare sleutels genereert en vervolgens wordt de openbare sleutel naar de server gestuurd. Daarna hebt u geen wachtwoord meer nodig om verbinding te maken met de server, omdat authenticatie wordt uitgevoerd op basis van openbare en privé-clientsleutels. Om een goed beveiligingsniveau te bieden, moet de toegang tot de privésleutel worden beperkt. Omdat de privésleutel aan de kant van de client wordt opgeslagen en niet via het netwerk wordt verzonden, wordt aangenomen dat deze methode veiliger is.
Authenticatie via sleutel op Linux
Laten we publieke en private sleutels genereren op de client met behulp van ssh-keygen utility software. De tool zal voorstellen om het pad naar de private sleutel te wijzigen en een wachtwoordzin in te voeren voor extra beveiliging. Laat alle parameters standaard staan door bij alle verzoeken op Enter te drukken.
Als gevolg hiervan vindt u in de thuismap in de .ssh-map twee gegenereerde bestanden: id_rsa en id_rsa.pub , die respectievelijk de privé- en publieke sleutels bevatten.
Daarna moet u de publieke sleutel naar de server sturen. Kopieer hiervoor de inhoud van het bestand “ id_rsa.pub ” naar het bestand “ ~/.ssh/authorized_keys ” op de server. Een makkelijke manier is met behulp van de tool “ ssh-copy-id ”. Voer de gebruikersnaam en het IP-adres van de server in, net zoals bij een gewone verbinding. Nadat u het wachtwoord hebt ingevoerd, wordt de publieke sleutel van de client automatisch naar de server gekopieerd. Voer hiervoor de volgende opdracht uit:
ssh-copy-id [email protected]
Nadat u dit allemaal hebt gedaan, hoeft u geen wachtwoord meer in te voeren.
Authenticatie via sleutel op Windows
Open PUTTYGEN en klik op " Genereren ". Om de sleutels te genereren, hoeft u alleen maar uw muis over het scherm te bewegen en de tool genereert de sleutels willekeurig.
Nadat de sleutels zijn gegenereerd, klikt u op ' Privésleutel opslaan ' en slaat u deze op in de map 'Privésleutel' op uw schijf. U kunt zelf het pad kiezen, maar u moet dit later nog in Putty specificeren. Kopieer vervolgens de openbare sleutel bovenaan het venster.
Laten we de publieke sleutel versturen door deze simpelweg naar de terminal te kopiëren. Open Putty en maak zoals gebruikelijk verbinding met de server. Laten we nu het bestand “ .ssh/authorized_keys ” aanmaken en de toegang tot het bestand beperken voor andere gebruikers, zodat het alleen toegankelijk is voor de maker.
mkdir .ssh
touch .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
Nadat u het bestand hebt gemaakt, plaatst u de openbare sleutel van de client erin. In de vorige fase hebben we de openbare sleutel naar het klembord gekopieerd. Om wat er in het klembord staat op te slaan in het bestand, gebruikt u de opdracht cat en output redirection.
cat > .ssh/authorized_keys
Nadat je de opdracht hebt ingevoerd, klik je met de rechtermuisknop in het terminalvenster en plak je de inhoud van het klembord. Om de invoer te bevestigen, druk je op de sneltoets " Ctrl+D " en verbreek je de verbinding met de server.
Nu specificeren we het pad naar de persoonlijke sleutel in Putty en maken we opnieuw verbinding met de server.
Vanaf nu hoeft u alleen uw gebruikersnaam in te voeren om verbinding te maken met de server. Als u verbinding probeert te maken met de server vanaf een ander apparaat dat niet de juiste privésleutel heeft, zal de server om een wachtwoord vragen. Nadat u de sleutelgebaseerde authenticatie hebt ingesteld, kunt u toegang via een wachtwoord weigeren.