GNU/Linux
Secure Shell (SSH)
Zoeken…
Invoering
Een beveiligde shell wordt gebruikt om op afstand toegang te krijgen tot een server vanaf een client via een gecodeerde verbinding. OpenSSH wordt gebruikt als alternatief voor Telnet-verbindingen die externe shell-toegang tot stand brengen, maar die niet zijn gecodeerd. De OpenSSH-client is standaard geïnstalleerd op de meeste GNU / Linux-distributies en wordt gebruikt om verbinding te maken met een server. Deze voorbeelden laten zien hoe u de SSH-suite kunt gebruiken om SSH-verbindingen te accepteren en verbinding te maken met een andere host.
Verbinding maken met een externe server
Om verbinding te maken met een server moeten we SSH als volgt op de client gebruiken,
# ssh -p port user@server-address
- port - De luister-ssh-poort van de server (standaardpoort 22).
- gebruiker - Moet een bestaande gebruiker op de server zijn met SSH-rechten.
- serveradres - Het IP / domein van de server.
Laten we voor een voorbeeld uit de echte wereld doen alsof u een website maakt. Het bedrijf dat u hebt gekozen om uw site te hosten, vertelt u dat de server zich bevindt op web-servers.com op een aangepaste poort van 2020 en dat uw accountnaam usr1 is gekozen om een gebruiker op de server met SSH-rechten te maken. In dit geval zou het gebruikte SSH-commando als zodanig zijn
# ssh -p 2020 [email protected]
Als de accountnaam op het externe systeem dezelfde is als die van de lokale client, kunt u de gebruikersnaam weglaten. Dus als u usr1
op beide systemen bent, kunt u eenvoudigweg web-servers.com
gebruiken web-servers.com
plaats van [email protected]
.
Wanneer een server waarmee u verbinding wilt maken niet rechtstreeks voor u toegankelijk is, kunt u proberen de ProxyJump-schakelaar te gebruiken om verbinding te maken via een andere server die voor u toegankelijk is en verbinding kan maken met de gewenste server.
# ssh -J [email protected]:2020 [email protected] -p 2222
Hiermee kunt u verbinding maken met de server 10.0.0.2 (met ssh op poort 2222) via de server op 10.0.0.1 (met ssh op poort 2020). Je moet natuurlijk op beide servers accounts hebben. Merk ook op dat de -J-schakelaar is geïntroduceerd in OpenSSH versie 7.3.
OpenSSH-suite installeren
Zowel verbinden met een SSH-server verwijderen als SSH-verbindingen accepteren vereist installatie van openssh
Debian:
# apt-get install openssh
Arch Linux:
# pacman -S openssh
Yum:
# yum install openssh
Genereer publieke en private sleutel
Om sleutels voor SSH-client te genereren:
ssh-keygen [-t rsa | rsa1 | dsa ] [-C <comment>] [-b bits]
Bijvoorbeeld:
ssh-keygen -t rsa -b 4096 - C [email protected]
Standaardlocatie is ~/.ssh/id_rsa
voor privé en ~/.ssh/id_rsa.pub
voor openbare sleutel.
Ga voor meer informatie naar man.openbsd.org
Een SSH-server configureren om verbindingen te accepteren
Eerst moeten we het SSH-daemon-configuratiebestand bewerken. Hoewel onder verschillende Linux-distributies dit zich in verschillende mappen kan bevinden, wordt het meestal opgeslagen onder /etc/ssh/sshd_config
Gebruik uw teksteditor om de waarden in dit bestand te wijzigen, alle regels die beginnen met # worden weggelaten en dit teken moet worden verwijderd om enig effect te hebben. Een lijst met aanbevelingen volgt als zodanig.
Port (chose a number between 0 - 65535, normaly greater than four digits)
PasswordAuthentication yes
AllowUsers user1 user2 ...etc
Houd er rekening mee dat het de voorkeur verdient om alle wachtwoordaanmeldingen samen uit te schakelen en SSH-sleutels te gebruiken voor verbeterde beveiliging, zoals uitgelegd in dit document.
Schakel ssh-service uit
Hierdoor wordt de SSH-server-side-service uitgeschakeld, omdat dit indien nodig verzekert dat clients geen verbinding kunnen maken via SSH
Ubuntu
sudo service ssh stop
Debian
sudo /etc/init.d/ssh stop
Arch Linux
sudo killall sshd
Wachtwoordloze verbinding (met behulp van een sleutelpaar)
Allereerst moet je een sleutelpaar hebben. Als je er nog geen hebt, bekijk dan het onderwerp 'Publieke en private sleutel genereren'.
Uw sleutelpaar bestaat uit een privésleutel (id_rsa) en een openbare sleutel (id_rsa.pub). Het enige wat u hoeft te doen is de openbare sleutel naar de externe host te kopiëren en de inhoud ervan toe te voegen aan het bestand ~/.ssh/authorized_keys
.
Een eenvoudige manier om dat te doen is:
ssh <user>@<ssh-server> 'cat >> ~/.ssh/authorized_keys' < id_rsa.pub
Zodra de openbare sleutel correct in de thuismap van uw gebruiker is geplaatst, hoeft u alleen maar in te loggen met de respectieve persoonlijke sleutel:
ssh <user>@<ssh-server> -i id_rsa