Inleiding
SSH is een beveiligd protocol dat wordt gebruikt als de primaire manier om op afstand verbinding te maken met Linux-servers. Het biedt een op tekst gebaseerde interface door een externe shell te starten. Na verbinding worden alle commando’s die u typt in uw lokale terminal naar de externe server verzonden en daar uitgevoerd.
In deze spiekbriefstijl gids zullen we enkele veelvoorkomende manieren behandelen om met SSH verbinding te maken om uw doelstellingen te bereiken. Dit kan worden gebruikt als een snel naslagwerk wanneer u moet weten hoe u op verschillende manieren verbinding kunt maken met of uw server kunt configureren.
Bereid uw frontend-applicaties voor vanuit GitHub met behulp van DigitalOcean App Platform. Laat DigitalOcean zich richten op het schalen van uw app.
Hoe deze gids te gebruiken
- Lees eerst de SSH Overzichtsectie als u niet bekend bent met SSH in het algemeen of net begint.
- Gebruik vervolgens de daaropvolgende secties die van toepassing zijn op wat u probeert te bereiken. De meeste secties zijn niet afhankelijk van elkaar, dus u kunt de volgende voorbeelden onafhankelijk gebruiken.
- Gebruik het inhoudsmenu aan de linkerkant van deze pagina (bij brede paginabreedtes) of de zoekfunctie van uw browser om de secties te vinden die u nodig heeft.
- Kopieer en plak de opdrachtregelvoorbeelden die worden gegeven en vervang de
gemarkeerde
waarden door uw eigen waarden.
SSH Overzicht
De meest voorkomende manier om verbinding te maken met een externe Linux-server is via SSH. SSH staat voor Secure Shell en biedt een veilige manier om commando’s uit te voeren, wijzigingen aan te brengen en services op afstand te configureren. Wanneer u via SSH verbinding maakt, meldt u zich aan met een account dat op de externe server bestaat.
Hoe SSH Werkt
Wanneer u verbinding maakt via SSH, wordt u in een shell-sessie geplaatst, wat een op tekst gebaseerde interface is waarin u kunt communiceren met uw server. Gedurende uw SSH-sessie worden alle commando’s die u in uw lokale terminal typt, via een versleutelde SSH-tunnel verzonden en uitgevoerd op uw server.
De SSH-verbinding wordt geïmplementeerd met behulp van een client-servermodel. Dit betekent dat voor een SSH-verbinding tot stand kan worden gebracht, de externe machine een stuk software genaamd een SSH-daemon moet draaien. Deze software luistert naar verbindingen op een specifieke netwerkpoort, authenticeert verbindingsverzoeken en start de juiste omgeving op als de gebruiker de juiste referenties verstrekt.
De computer van de gebruiker moet een SSH-client hebben. Dit is een stuk software dat weet hoe te communiceren met behulp van het SSH-protocol en kan worden voorzien van informatie over de externe host waarmee verbinding moet worden gemaakt, de gebruikersnaam die moet worden gebruikt, en de referenties die moeten worden doorgegeven voor authenticatie. De client kan ook bepaalde details specificeren over het verbindingsstype dat ze willen opzetten.
Hoe SSH-gebruikers authenticeren
Gebruikers authenticeren zich doorgaans met wachtwoorden (minder veilig en niet aanbevolen) of SSH-sleutels, die zeer veilig zijn.
Wachtwoordlogins zijn versleuteld en zijn eenvoudig te begrijpen voor nieuwe gebruikers. Echter, geautomatiseerde bots en kwaadwillende gebruikers zullen vaak herhaaldelijk proberen zich te authenticeren bij accounts die wachtwoordgebaseerde logins toestaan, wat kan leiden tot beveiligingscompromissen. Daarom raden we altijd aan om SSH-sleutelgebaseerde authenticatie in te stellen voor de meeste configuraties.
SSH-sleutels zijn een bijpassende set cryptografische sleutels die kunnen worden gebruikt voor authenticatie. Elke set bevat een openbare en een privésleutel. De openbare sleutel kan vrij worden gedeeld zonder zorgen, terwijl de privésleutel waakzaam moet worden bewaakt en nooit aan iemand mag worden blootgesteld.
Om te authenticeren met behulp van SSH-sleutels, moet een gebruiker een SSH-sleutelpaar op hun lokale computer hebben. Op de externe server moet de openbare sleutel worden gekopieerd naar een bestand binnen de thuismap van de gebruiker op ~/.ssh/authorized_keys
. Dit bestand bevat een lijst met openbare sleutels, één per regel, die gemachtigd zijn om in te loggen op dit account.
Wanneer een client verbinding maakt met de host en SSH-sleutelverificatie wil gebruiken, informeert deze de server over deze intentie en vertelt de server welke openbare sleutel moet worden gebruikt. De server controleert vervolgens zijn authorized_keys
-bestand op de openbare sleutel, genereert een willekeurige string en versleutelt deze met de openbare sleutel. Dit versleutelde bericht kan alleen worden gedecodeerd met de bijbehorende privésleutel. De server stuurt dit versleutelde bericht naar de client om te testen of deze daadwerkelijk de bijbehorende privésleutel heeft.
Na ontvangst van dit bericht zal de client het decoderen met de privésleutel en de onthulde willekeurige string combineren met een eerder onderhandelde sessie-ID. Vervolgens genereert het een MD5-hash van deze waarde en verzendt het deze terug naar de server. De server had al het oorspronkelijke bericht en de sessie-ID, dus het kan een MD5-hash vergelijken die is gegenereerd door die waarden en bepalen dat de client de privésleutel moet hebben.
Nu je weet hoe SSH werkt, kunnen we beginnen met het bespreken van enkele voorbeelden om verschillende manieren te demonstreren om met SSH te werken.
Het genereren en werken met SSH-sleutels
Deze sectie zal behandelen hoe je SSH-sleutels genereert op een clientmachine en de openbare sleutel distribueert naar servers waar ze moeten worden gebruikt. Dit is een goede sectie om mee te beginnen als je nog niet eerder sleutels hebt gegenereerd vanwege de verhoogde beveiliging die het mogelijk maakt voor toekomstige verbindingen.
Het genereren van een SSH-sleutelpaar
Het genereren van een nieuw SSH openbaar en privé sleutelpaar op je lokale computer is de eerste stap om te authenticeren bij een externe server zonder wachtwoord. Tenzij er een goede reden is om dat niet te doen, zou je altijd moeten authenticeren met SSH-sleutels.
A number of cryptographic algorithms can be used to generate SSH keys, including RSA, DSA, and ECDSA. RSA keys are generally preferred and are the default key type.
Om een RSA-sleutelpaar te genereren op je lokale computer, typ:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Deze prompt stelt je in staat om de locatie te kiezen om je RSA-privésleutel op te slaan. Druk op ENTER
om dit als standaard te laten, wat ze zal opslaan in de verborgen map .ssh
in de thuismap van je gebruiker. Het standaard geselecteerde locatie laten zal je SSH-client in staat stellen om de sleutels automatisch te vinden.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
De volgende prompt stelt u in staat om een wachtwoordzin van willekeurige lengte in te voeren om uw privésleutel te beveiligen. Standaard moet u elke keer dat u de privésleutel gebruikt, een wachtwoordzin invoeren die u hier instelt, als extra beveiligingsmaatregel. Voel u vrij om op ENTER
te drukken om dit leeg te laten als u geen wachtwoordzin wilt. Houd er echter rekening mee dat dit iedereen die controle krijgt over uw privésleutel in staat zal stellen om in te loggen op uw servers.
Als u ervoor kiest om een wachtwoordzin in te voeren, wordt er niets weergegeven terwijl u typt. Dit is een veiligheidsmaatregel.
OutputYour identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
8c:e9:7c:fa:bf:c4:e5:9c:c9:b8:60:1f:fe:1c:d3:8a root@here
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| + |
| o S . |
| o . * + |
| o + = O . |
| + = = + |
| ....Eo+ |
+-----------------+
Deze procedure heeft een RSA SSH-sleutelpaar gegenereerd, dat zich bevindt in de verborgen map .ssh
binnen de thuismap van uw gebruiker. Deze bestanden zijn:
~/.ssh/id_rsa
: De privésleutel. DEEL DIT BESTAND NIET!~/.ssh/id_rsa.pub
: De bijbehorende openbare sleutel. Dit kan vrijelijk worden gedeeld zonder gevolgen.
Genereer een SSH-sleutelpaar met een groter aantal bits
SSH-sleutels zijn standaard 2048 bits. Dit wordt over het algemeen beschouwd als voldoende voor beveiliging, maar u kunt een groter aantal bits specificeren voor een gehardere sleutel.
Om dit te doen, voeg het argument -b
toe met het aantal bits dat u wilt. De meeste servers ondersteunen sleutels met een lengte van minstens 4096 bits. Langere sleutels worden mogelijk niet geaccepteerd voor DDOS-beschermingsdoeleinden:
Als u eerder een andere sleutel hebt gemaakt, wordt u gevraagd of u uw vorige sleutel wilt overschrijven:
Overwrite (y/n)?
Als u “ja” kiest, wordt uw vorige sleutel overschreven en kunt u niet langer inloggen op servers met die sleutel. Wees daarom voorzichtig bij het overschrijven van sleutels.
Het verwijderen of wijzigen van het wachtwoord van een privésleutel
Als u een wachtwoord heeft gegenereerd voor uw privésleutel en dit wilt wijzigen of verwijderen, kunt u dat eenvoudig doen.
Opmerking: Om het wachtwoord te wijzigen of te verwijderen, moet u het oorspronkelijke wachtwoord kennen. Als u het wachtwoord voor de sleutel bent verloren, is er geen oplossing en moet u een nieuw sleutelpaar genereren.
Om het wachtwoord te wijzigen of te verwijderen, typt u eenvoudigweg:
Enter file in which the key is (/root/.ssh/id_rsa):
U kunt de locatie van de sleutel die u wilt wijzigen invoeren of op ENTER
drukken om de standaardwaarde te accepteren:
Enter old passphrase:
Voer het oude wachtwoord in dat u wilt wijzigen. U wordt dan gevraagd om een nieuw wachtwoord in te voeren:
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Voer hier uw nieuwe wachtwoord in of druk op ENTER
om het wachtwoord te verwijderen.
Het weergeven van de SSH-sleutelvingerafdruk
Elk SSH-sleutelpaar deelt een enkele cryptografische “vingerafdruk” die kan worden gebruikt om de sleutels uniek te identificeren. Dit kan nuttig zijn in verschillende situaties.
Om de vingerafdruk van een SSH-sleutel te vinden, typt u:
Enter file in which the key is (/root/.ssh/id_rsa):
U kunt op ENTER
drukken als dat de juiste locatie van de sleutel is, anders voert u de herziene locatie in. U krijgt een string die de bitlengte van de sleutel, de vingerafdruk en het account en de host waarvoor deze is gemaakt, en het gebruikte algoritme bevat:
Output4096 8e:c4:82:47:87:c2:26:4b:68:ff:96:1a:39:62:9e:4e demo@test (RSA)
Het kopiëren van uw openbare SSH-sleutel naar een server met SSH-Copy-ID
Om uw openbare sleutel naar een server te kopiëren, waardoor u kunt authenticeren zonder wachtwoord, kunnen verschillende benaderingen worden gevolgd.
Als u momenteel SSH-toegang op basis van wachtwoorden geconfigureerd heeft naar uw server, en u heeft het hulpprogramma ssh-copy-id
geïnstalleerd, is dit een eenvoudig proces. Het ssh-copy-id
gereedschap is opgenomen in veel OpenSSH-pakketten van Linux-distributies, dus het is zeer waarschijnlijk standaard geïnstalleerd.
Als u deze optie heeft, kunt u gemakkelijk uw openbare sleutel overdragen door te typen:
Hiermee wordt u gevraagd om het wachtwoord van het gebruikersaccount op het externe systeem:
The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:
Na het invoeren van het wachtwoord worden de inhoud van uw ~/.ssh/id_rsa.pub
-sleutel toegevoegd aan het einde van het bestand ~/.ssh/authorized_keys
van het gebruikersaccount:
OutputNumber of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
U kunt nu inloggen op dat account zonder wachtwoord:
Het kopiëren van uw openbare SSH-sleutel naar een server zonder SSH-Copy-ID
Als u niet beschikt over het ssh-copy-id
hulpprogramma, maar nog steeds op wachtwoord gebaseerde SSH-toegang heeft tot de externe server, kunt u de inhoud van uw openbare sleutel op een andere manier kopiëren.
U kunt de inhoud van de sleutel uitvoeren en doorprikken in het ssh
commando. Aan de externe kant kunt u ervoor zorgen dat de ~/.ssh
map bestaat, en vervolgens de doorgeprikte inhoud toevoegen aan het ~/.ssh/authorized_keys
bestand:
U wordt gevraagd het wachtwoord voor het externe account in te voeren:
The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
[email protected]'s password:
Na het invoeren van het wachtwoord wordt uw sleutel gekopieerd, waardoor u kunt inloggen zonder wachtwoord:
Het kopiëren van uw openbare SSH-sleutel naar een server handmatig
Als u geen toegang heeft tot SSH op basis van wachtwoord, moet u uw openbare sleutel handmatig toevoegen aan de externe server.
Op uw lokale machine kunt u de inhoud van uw openbare sleutelbestand vinden door te typen:
Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test
U kunt deze waarde kopiëren en handmatig plakken op de juiste locatie op de externe server. U moet zich aanmelden bij de externe server via andere middelen (zoals de DigitalOcean-webconsole).
Op de externe server kunt u de map ~/.ssh
aanmaken als deze nog niet bestaat:
Daarna kunt u het bestand ~/.ssh/authorized_keys
maken of eraan toevoegen door te typen:
U zou nu moeten kunnen inloggen op de externe server zonder wachtwoord.
Basisverbindingsinstructies
Het volgende gedeelte zal enkele basisprincipes behandelen over hoe u verbinding kunt maken met een server met SSH.
Verbinding maken met een externe server
Om verbinding te maken met een externe server en daar een shell-sessie te openen, kunt u het ssh
-commando gebruiken.
De eenvoudigste vorm gaat ervan uit dat uw gebruikersnaam op uw lokale machine hetzelfde is als die op de externe server. Als dit waar is, kunt u verbinding maken met:
Als uw gebruikersnaam anders is op de externe server, moet u de naam van de externe gebruiker doorgeven zoals dit:
De eerste keer dat u verbinding maakt met een nieuwe host, ziet u een bericht dat er zo uitziet:
The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
Typ ja
om de authenticiteit van de externe host te accepteren.
Als u wachtwoordauthenticatie gebruikt, wordt u hier gevraagd om het wachtwoord voor het externe account in te voeren. Als u SSH-sleutels gebruikt, wordt u gevraagd om de passphrase van uw privésleutel in te voeren als deze is ingesteld, anders wordt u automatisch ingelogd.
Het uitvoeren van een enkel commando op een externe server
Om een enkel commando op een externe server uit te voeren in plaats van een shell-sessie te starten, kunt u het commando toevoegen na de verbindingsinformatie, zoals dit:
Dit zal verbinding maken met de externe host, authenticeren met uw referenties en het door u gespecificeerde commando uitvoeren. De verbinding zal onmiddellijk daarna worden verbroken.
Inloggen op een server met een ander poortnummer
Standaard draait de SSH-daemon op een server op poort 22
. Uw SSH-client zal ervan uitgaan dat dit het geval is bij het proberen verbinding te maken. Als uw SSH-server luistert op een niet-standaard poortnummer (dit wordt gedemonstreerd in een latere sectie), moet u het nieuwe poortnummer specificeren bij het verbinden met uw client.
U kunt dit doen door het poortnummer op te geven met de -p
optie:
Om te voorkomen dat u dit elke keer moet doen wanneer u zich aanmeldt bij uw externe server, kunt u een configuratiebestand maken of bewerken in de ~/.ssh
directory binnen de thuismap van uw lokale computer.
Bewerk of maak het bestand nu door het volgende te typen:
Hier kunt u hostspecifieke configuratieopties instellen. Om uw nieuwe poort te specificeren, gebruikt u een indeling zoals deze:
Host remote_alias
HostName remote_host
Port port_num
Dit stelt u in staat om in te loggen zonder het specifieke poortnummer op de commandoregel op te geven.
Het toevoegen van uw SSH-sleutels aan een SSH-agent om het invoeren van de wachtzin te vermijden
Als u een wachtwoordzin heeft op uw privésleutel van SSH, wordt u telkens gevraagd om de wachtwoordzin in te voeren wanneer u deze gebruikt om verbinding te maken met een externe host.
Om te voorkomen dat u dit telkens opnieuw moet doen, kunt u een SSH-agent uitvoeren. Deze kleine hulpprogramma slaat uw privésleutel op nadat u de wachtwoordzin voor de eerste keer heeft ingevoerd. Het zal beschikbaar zijn gedurende uw terminalsessie, waardoor u in de toekomst verbinding kunt maken zonder de wachtwoordzin opnieuw in te voeren.
Dit is ook belangrijk als u uw SSH-inloggegevens moet doorsturen (later getoond).
Om de SSH-agent te starten, typt u het volgende in uw lokale terminalsessie:
OutputAgent pid 10891
Dit zal het agentprogramma starten en het in de achtergrond plaatsen. Nu moet je je privésleutel toevoegen aan de agent, zodat deze je sleutel kan beheren:
Enter passphrase for /home/demo/.ssh/id_rsa:
Identity added: /home/demo/.ssh/id_rsa (/home/demo/.ssh/id_rsa)
Je moet je wachtwoord invoeren (indien ingesteld). Daarna wordt je identiteitsbestand toegevoegd aan de agent, waardoor je je sleutel kunt gebruiken om in te loggen zonder het wachtwoord opnieuw in te voeren.
Doorsturen van je SSH-inloggegevens om te gebruiken op een server
Als je wilt kunnen verbinden zonder een wachtwoord naar één server vanuit een andere server, moet je je SSH-sleutelinformatie doorsturen. Dit stelt je in staat om je te authenticeren bij een andere server via de server waarop je bent aangesloten, met behulp van de referenties op je lokale computer.
Om te beginnen, moet je je SSH-agent gestart hebben en je SSH-sleutel toegevoegd hebben aan de agent (zie hierboven). Nadat dit is gebeurd, moet je verbinding maken met je eerste server met behulp van de optie -A
. Dit stuurt je referenties door naar de server voor deze sessie:
Vanaf hier kun je SSH’en naar een andere host waarvoor je SSH-sleutel gemachtigd is om toegang te krijgen. Je maakt verbinding alsof je privé-SSH-sleutel zich op deze server bevond.
Serverconfiguratieopties aan de serverzijde
Deze sectie bevat enkele veelvoorkomende server-side configuratieopties die de manier kunnen beïnvloeden waarop uw server reageert en welke soorten verbindingen zijn toegestaan.
Uitschakelen van wachtwoordauthenticatie
Als u SSH-sleutels geconfigureerd, getest en goed werkend hebt, is het waarschijnlijk een goed idee om wachtwoordauthenticatie uit te schakelen. Hierdoor kan geen enkele gebruiker zich aanmelden bij SSH met een wachtwoord.
Om dit te doen, maak verbinding met uw externe server en open het bestand /etc/ssh/sshd_config
met root- of sudo-rechten:
In het bestand zoekt u naar de richtlijn PasswordAuthentication
. Als deze is uitgecommentarieerd, haal dan het commentaar weg. Stel het in op no
om wachtwoordaanmeldingen uit te schakelen:
PasswordAuthentication no
Nadat u de wijziging hebt aangebracht, slaat u het bestand op en sluit u het af. Om de wijzigingen door te voeren, moet u de SSH-service opnieuw starten.
Op Ubuntu/Debian:
Op CentOS/Fedora:
Vanaf nu kunnen alle accounts op het systeem niet meer inloggen bij SSH met wachtwoorden.
De poort wijzigen waarop de SSH-daemon draait
Sommige beheerders suggereren dat u de standaardpoort waarop SSH draait, wijzigt. Dit kan helpen het aantal verificatiepogingen te verminderen waaraan uw server wordt blootgesteld door geautomatiseerde bots.
Om de poort te wijzigen waarop de SSH-daemon luistert, moet u inloggen op uw externe server. Open het bestand sshd_config
op het externe systeem met rootrechten, ofwel door in te loggen met die gebruiker of door sudo
te gebruiken:
Eenmaal binnen kunt u de poort waarop SSH draait wijzigen door de specificatie Port 22
te vinden en deze aan te passen om de poort weer te geven die u wilt gebruiken. Om bijvoorbeeld de poort te wijzigen naar 4444
, voegt u dit toe aan uw bestand:
#Port 22
Port 4444
Sla het bestand op en sluit het af wanneer u klaar bent. Om de wijzigingen door te voeren, moet u de SSH-daemon herstarten.
Op Ubuntu/Debian:
Op CentOS/Fedora:
Na het herstarten van de daemon moet u zich authenticeren door het poortnummer op te geven (gedemonstreerd in een eerder gedeelte).
Beperken van de gebruikers die via SSH kunnen verbinden
Om expliciet de gebruikersaccounts te beperken die kunnen inloggen via SSH, kunt u verschillende benaderingen volgen, waarbij u telkens de SSH-daemonconfiguratie moet aanpassen.
Open nu dit bestand op uw externe server met root- of sudo-rechten:
De eerste methode om de accounts te specificeren die zijn toegestaan om in te loggen, is door gebruik te maken van de AllowUsers
richtlijn. Zoek naar de AllowUsers
richtlijn in het bestand. Als deze niet bestaat, maak deze dan ergens aan. Na de richtlijn, vermeld de gebruikersaccounts die toegang moeten krijgen om in te loggen via SSH:
AllowUsers user1 user2
Sla het bestand op en sluit het. Herstart de daemon om uw wijzigingen door te voeren.
Voor Ubuntu/Debian:
Voor CentOS/Fedora:
Als u meer vertrouwd bent met groepsbeheer, kunt u in plaats daarvan de AllowGroups
richtlijn gebruiken. Voeg in dat geval gewoon een enkele groep toe die SSH-toegang moet krijgen (we zullen deze groep en leden zo meteen aanmaken):
AllowGroups sshmembers
Sla het bestand op en sluit het.
Nu kunt u een systeemgroep (zonder een home directory) aanmaken die overeenkomt met de groep die u heeft opgegeven door het volgende te typen:
Zorg ervoor dat u de gebruikersaccounts toevoegt die u nodig heeft aan deze groep. Dit kan worden gedaan door het volgende te typen:
Herstart nu de SSH daemon om uw wijzigingen door te voeren.
Voor Ubuntu/Debian:
Voor CentOS/Fedora:
Root Login uitschakelen
Het is vaak raadzaam om volledig de root login via SSH uit te schakelen nadat u een SSH-gebruikersaccount hebt ingesteld met sudo
-rechten.
Om dit te doen, open het configuratiebestand van de SSH daemon met root- of sudo-rechten op uw externe server.
Binnenin, zoek naar een richtlijn genaamd PermitRootLogin
. Als het is uitgecommentarieerd, haal dan het commentaar weg. Verander de waarde naar “no”:
PermitRootLogin no
Sla het bestand op en sluit het. Om uw wijzigingen door te voeren, herstart u de SSH-daemon.
Op Ubuntu/Debian:
Op CentOS/Fedora:
Toegang tot root toestaan voor specifieke commando’s
Er zijn enkele gevallen waarin u mogelijk de roottoegang wilt uitschakelen, maar deze wilt inschakelen om bepaalde toepassingen correct uit te voeren. Een voorbeeld hiervan kan een back-uproutine zijn.
Dit kan worden bereikt via het bestand authorized_keys
van de rootgebruiker, dat SSH-sleutels bevat die gemachtigd zijn om het account te gebruiken.
Voeg de sleutel van uw lokale computer toe die u voor dit proces wilt gebruiken (we raden aan voor elk automatisch proces een nieuwe sleutel te maken) aan het bestand authorized_keys
van de rootgebruiker op de server. We zullen hier de ssh-copy-id
-opdracht demonstreren, maar u kunt een van de methoden voor het kopiëren van sleutels gebruiken die we bespreken in andere secties:
Log nu in op de externe server. We moeten de invoer in het bestand authorized_keys
aanpassen, dus open het met root- of sudo-toegang:
Aan het begin van de regel met de sleutel die je hebt geüpload, voeg een command=
lijst toe die het commando definieert waarvoor deze sleutel geldig is. Dit moet het volledige pad naar het uitvoerbare bestand bevatten, plus eventuele argumenten:
command="/path/to/command arg1 arg2" ssh-rsa ...
Sla het bestand op en sluit het af wanneer je klaar bent.
Open nu het bestand sshd_config
met root- of sudo-rechten:
Zoek de richtlijn PermitRootLogin
en verander de waarde naar forced-commands-only
. Hiermee worden alleen SSH-sleutel logins toegestaan voor root wanneer er een commando is gespecificeerd voor de sleutel:
PermitRootLogin forced-commands-only
Sla het bestand op en sluit het af. Herstart de SSH-daemon om je wijzigingen door te voeren.
Op Ubuntu/Debian:
Op CentOS/Fedora:
Doorsturen van X-toepassingsweergaven naar de client
De SSH-daemon kan worden geconfigureerd om automatisch de weergave van X-toepassingen op de server door te sturen naar de clientmachine. Hiervoor moet de client een X Window-systeem geconfigureerd en ingeschakeld hebben.
Om deze functionaliteit in te schakelen, log in op je externe server en bewerk het bestand sshd_config
als root of met sudo-rechten:
Zoek de richtlijn X11Forwarding
. Als deze is uitgecommentarieerd, maak deze dan actief. Maak deze indien nodig aan en stel de waarde in op “yes”:
X11Forwarding yes
Sla het bestand op en sluit het af. Herstart uw SSH-daemon om deze wijzigingen door te voeren.
Op Ubuntu/Debian:
Op CentOS/Fedora:
Om verbinding te maken met de server en het display van een applicatie door te sturen, moet je de -X
optie van de client doorgeven bij de verbinding:
Grafische applicaties die op de server worden gestart via deze sessie moeten worden weergegeven op de lokale computer. De prestaties kunnen wat traag zijn, maar het is zeer nuttig in geval van nood.
Clientzijde Configuratie Opties
In de volgende sectie zullen we ons richten op enkele aanpassingen die u kunt maken aan de clientzijde van de verbinding.
Definiëren van Server-Specifieke Verbindingsinformatie
Op uw lokale computer kunt u individuele configuraties definiëren voor sommige of alle servers waarmee u verbinding maakt. Deze kunnen worden opgeslagen in het ~/.ssh/config
bestand, dat door uw SSH-client wordt gelezen telkens wanneer het wordt aangeroepen.
Maak of open dit bestand in uw teksteditor op uw lokale computer:
Binnenin kunt u individuele configuratieopties definiëren door elk te introduceren met een Host
trefwoord, gevolgd door een alias. Daaronder en ingesprongen, kunt u een van de richtlijnen definiëren die worden gevonden in de ssh_config
man-pagina:
Een voorbeeldconfiguratie zou zijn:
Host testhost
HostName your_domain
Port 4444
User demo
U kunt dan verbinden met your_domain
op poort 4444
met behulp van de gebruikersnaam demo
door eenvoudigweg in te typen:
U kunt ook wildcards gebruiken om meer dan één host overeen te laten komen. Houd er rekening mee dat latere overeenkomsten eerdere kunnen overschrijven. Hierdoor moet u uw meest algemene overeenkomsten bovenaan plaatsen. Bijvoorbeeld, u kunt standaard alle verbindingen instellen om X-forwarding niet toe te staan, met een override voor your_domain
door dit in uw bestand te hebben:
Host *
ForwardX11 no
Host testhost
HostName your_domain
ForwardX11 yes
Port 4444
User demo
Sla het bestand op en sluit het wanneer u klaar bent.
Verbindingen actief houden om time-outs te voorkomen
Als u merkt dat u wordt losgekoppeld van SSH-sessies voordat u er klaar voor bent, is het mogelijk dat uw verbinding verloopt.
U kunt uw client configureren om periodiek een pakket naar de server te sturen om deze situatie te vermijden:
Op uw lokale computer kunt u dit configureren voor elke verbinding door uw ~/.ssh/config
-bestand te bewerken. Open het nu:
Indien deze nog niet bestaat, definieer bovenaan het bestand een sectie die overeenkomt met alle hosts. Stel de ServerAliveInterval
in op “120” om elke twee minuten een pakket naar de server te sturen. Dit zou voldoende moeten zijn om de server op de hoogte te stellen dat de verbinding niet moet worden verbroken:
Host *
ServerAliveInterval 120
Sla het bestand op en sluit het wanneer je klaar bent.
Uitschakelen van Hostcontrole
Standaard wordt telkens wanneer je verbinding maakt met een nieuwe server, de host key fingerprint van de externe SSH-daemon weergegeven.
The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
Dit is geconfigureerd zodat je de authenticiteit van de host waarmee je probeert verbinding te maken kunt verifiëren en gevallen kunt identificeren waarin een kwaadwillende gebruiker probeert zich voor te doen als de externe host.
In bepaalde omstandigheden wil je deze functie misschien uitschakelen. Let op: Dit kan een groot beveiligingsrisico vormen, dus zorg ervoor dat je weet wat je doet als je je systeem op deze manier instelt.
Om de wijziging aan te brengen, open je het bestand ~/.ssh/config
op je lokale computer:
Als deze nog niet bestaat, definieer dan bovenaan het bestand een sectie die overeenkomt met alle hosts. Stel de StrictHostKeyChecking
directive in op no
om nieuwe hosts automatisch toe te voegen aan het known_hosts
-bestand. Stel UserKnownHostsFile
in op /dev/null
om geen waarschuwingen te ontvangen voor nieuwe of gewijzigde hosts:
Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
U kunt de controle op basis van geval per geval inschakelen door die opties om te keren voor andere hosts. De standaard voor StrictHostKeyChecking
is ask
:
Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
Host testhost
HostName your_domain
StrictHostKeyChecking ask
UserKnownHostsFile /home/demo/.ssh/known_hosts
SSH multiplexing op een enkele TCP-verbinding
Er zijn situaties waarbij het tot stand brengen van een nieuwe TCP-verbinding langer kan duren dan wenselijk is. Als u meerdere verbindingen met dezelfde machine maakt, kunt u profiteren van multiplexing.
SSH-multiplexing hergebruikt dezelfde TCP-verbinding voor meerdere SSH-sessies. Hierdoor wordt een deel van het werk dat nodig is om een nieuwe sessie tot stand te brengen, mogelijk versneld. Het beperken van het aantal verbindingen kan ook om andere redenen nuttig zijn.
Om multiplexing in te stellen, kunt u de verbindingen handmatig opzetten, of u kunt uw client configureren om automatisch multiplexing te gebruiken wanneer beschikbaar. We zullen hier de tweede optie demonstreren.
Om multiplexing te configureren, bewerkt u het configuratiebestand van uw SSH-client op uw lokale machine:
Als u nog geen wildcard hostdefinitie bovenaan het bestand heeft, voegt u er nu een toe (als Host *
). We zullen de waarden ControlMaster
, ControlPath
en ControlPersist
instellen om onze multiplexingconfiguratie tot stand te brengen.
De ControlMaster
moet worden ingesteld op “auto” om automatisch multiplexen toe te staan indien mogelijk. De ControlPath
zal het pad naar de besturingssocket vaststellen. De eerste sessie zal deze socket aanmaken en volgende sessies zullen deze kunnen vinden omdat deze gelabeld is met gebruikersnaam, host en poort.
Het instellen van de ControlPersist
-optie op 1
zal de initiële hoofdverbinding toestaan om naar de achtergrond te worden verplaatst. De 1
specificeert dat de TCP-verbinding automatisch moet worden beëindigd één seconde nadat de laatste SSH-sessie is gesloten:
Host *
ControlMaster auto
ControlPath ~/.ssh/multiplex/%r@%h:%p
ControlPersist 1
Sla het bestand op en sluit het af wanneer je klaar bent. Nu moeten we daadwerkelijk de directory aanmaken die we hebben gespecificeerd in het besturingspad:
Nu zullen eventuele sessies die zijn opgezet met dezelfde machine proberen de bestaande socket en TCP-verbinding te gebruiken. Wanneer de laatste sessie wordt beëindigd, wordt de verbinding na één seconde verbroken.
Als je om de een of andere reden de multiplexconfiguratie tijdelijk wilt omzeilen, kun je dit doen door de -S
-vlag door te geven met none
:
SSH-tunnels instellen
Het omleiden van ander verkeer via een beveiligde SSH-tunnel is een uitstekende manier om beperkende firewall-instellingen te omzeilen. Het is ook een geweldige manier om anders onversleuteld netwerkverkeer te versleutelen.
Configureren van Lokale Tunneling naar een Server
SSH-verbindingen kunnen worden gebruikt om verkeer van poorten op de lokale host naar poorten op een externe host te tunnelen.
A local connection is a way of accessing a network location from your local computer through your remote host. First, an SSH connection is established to your remote host. On the remote server, a connection is made to an external (or internal) network address provided by the user and traffic to this location is tunneled to your local computer on a specified port.
Dit wordt vaak gebruikt om te tunnelen naar een minder beperkte netwerkomgeving door een firewall te omzeilen. Een ander veelvoorkomend gebruik is om toegang te krijgen tot een “alleen lokaal host” webinterface vanaf een externe locatie.
Om een lokale tunnel naar uw externe server op te zetten, moet u de parameter -L
gebruiken bij het verbinden en moet u drie aanvullende stukken informatie opgeven:
- De lokale poort waarop u toegang wilt krijgen tot de getunnelde verbinding.
- De host waarmee u wilt dat uw externe host verbinding maakt.
- De poort waarmee u wilt dat uw externe host verbinding maakt.
Deze worden, in de bovenstaande volgorde (gescheiden door dubbele punten), als argumenten doorgegeven aan de -L
-vlag. We zullen ook de -f
-vlag gebruiken, die ervoor zorgt dat SSH op de achtergrond wordt uitgevoerd voordat het wordt uitgevoerd, en de -N
-vlag, die geen shell opent of een programma aan de externe kant uitvoert.
Bijvoorbeeld, om verbinding te maken met uw_domein
op poort 80 op uw externe host, waardoor de verbinding beschikbaar is op uw lokale machine op poort 8888, zou u het volgende kunnen typen:
Nu, als u uw lokale webbrowser wijst naar 127.0.0.1:8888
, zou u de inhoud moeten zien die zich bevindt op uw_domein
op poort 80
.
A more general guide to the syntax is:
Aangezien de verbinding op de achtergrond draait, moet je de PID ervan vinden om deze te beëindigen. Dit kun je doen door te zoeken naar de poort die je hebt doorgestuurd:
Output1001 5965 0.0 0.0 48168 1136 ? Ss 12:28 0:00 ssh -f -N -L 8888:your_domain:80 username@remote_host
1001 6113 0.0 0.0 13648 952 pts/2 S+ 12:37 0:00 grep --colour=auto 8888
Je kunt vervolgens het proces beëindigen door de PID te richten, wat het nummer is in de tweede kolom van de regel die overeenkomt met je SSH-opdracht:
Een andere optie is om de verbinding te starten zonder de -f
vlag. Dit houdt de verbinding in de voorgrond, waardoor je het terminalvenster niet kunt gebruiken gedurende de doorsturing. Het voordeel hiervan is dat je de tunnel eenvoudig kunt beëindigen door CTRL-C
in te typen.
Configuratie van Remote Tunneling naar een Server
SSH-verbindingen kunnen worden gebruikt om verkeer van poorten op de lokale host naar poorten op een externe host te tunnelen.
Bij een externe tunnel wordt een verbinding gemaakt met een externe host. Tijdens de creatie van de tunnel wordt een externe poort gespecificeerd. Deze poort, op de externe host, zal dan worden getunneld naar een host- en poortcombinatie waarmee verbinding wordt gemaakt vanaf de lokale computer. Dit maakt het mogelijk voor de externe computer om via jouw lokale computer toegang te krijgen tot een host.
Dit kan handig zijn als je toegang moet verlenen tot een intern netwerk dat is afgesloten voor externe verbindingen. Als de firewall verbindingen naar buiten toestaat vanuit het netwerk, kun je verbinding maken met een externe machine en verkeer van die machine naar een locatie op het interne netwerk tunnelen.
Om een externe tunnel naar uw externe server op te zetten, moet u de parameter -R
gebruiken bij het verbinden en moet u drie extra stukken informatie opgeven:
- De poort waar de externe host toegang heeft tot de getunnelde verbinding.
- De host waarmee u wilt dat uw lokale computer verbindt.
- De poort waarmee u wilt dat uw lokale computer verbindt.
Deze worden, in de hierboven genoemde volgorde (gescheiden door dubbele punten), als argumenten aan de -R
-vlag doorgegeven. We zullen ook de -f
-vlag gebruiken, die SSH in de achtergrond laat uitvoeren en de -N
-vlag, die geen shell opent of een programma aan de externe kant uitvoert.
Bijvoorbeeld, om verbinding te maken met your_domain
op poort 80 op onze lokale computer, waardoor de verbinding beschikbaar wordt op onze externe host op poort 8888
, kunt u het volgende typen:
Nu kunt u op de externe host een webbrowser openen naar 127.0.0.1:8888
om te zien welke inhoud er op your_domain
op poort 80
staat.
A more general guide to the syntax is:
Omdat de verbinding op de achtergrond wordt uitgevoerd, moet u de PID vinden om deze te beëindigen. U kunt dit doen door te zoeken naar de poort die u heeft doorgestuurd:
Output1001 5965 0.0 0.0 48168 1136 ? Ss 12:28 0:00 ssh -f -N -R 8888:your_domain:80 username@remote_host
1001 6113 0.0 0.0 13648 952 pts/2 S+ 12:37 0:00 grep --colour=auto 8888
Vervolgens kunt u het proces beëindigen door de PID te targeten, dit is het nummer in de tweede kolom, van de regel die overeenkomt met uw SSH-opdracht:
Een andere optie is om de verbinding te starten zonder de -f
vlag. Hierdoor blijft de verbinding in de voorgrond, waardoor je het terminalvenster niet kunt gebruiken gedurende het doorsturen. Het voordeel hiervan is dat je de tunnel gemakkelijk kunt stoppen door CTRL-C
te typen.
Het configureren van Dynamische Tunneling naar een Externe Server
SSH-verbindingen kunnen worden gebruikt om verkeer van poorten op de lokale host naar poorten op een externe host door te sturen.
A dynamic tunnel is similar to a local tunnel in that it allows the local computer to connect to other resources through a remote host. A dynamic tunnel does this by simply specifying a single local port. Applications that wish to take advantage of this port for tunneling must be able to communicate using the SOCKS protocol so that the packets can be correctly redirected at the other side of the tunnel.
Verkeer dat naar deze lokale poort wordt gestuurd, wordt naar de externe host verzonden. Van daaruit wordt het SOCKS-protocol geïnterpreteerd om een verbinding met de gewenste eindbestemming tot stand te brengen. Deze configuratie maakt het mogelijk dat een SOCKS-compatibele applicatie verbinding maakt met een willekeurig aantal locaties via de externe server, zonder meerdere statische tunnels.
Om de verbinding tot stand te brengen, zullen we de -D
vlag doorgeven samen met de lokale poort waarop we toegang willen tot de tunnel. We zullen ook de -f
vlag gebruiken, waardoor SSH op de achtergrond gaat voordat het wordt uitgevoerd en de -N
vlag, die geen shell opent of een programma aan de externe kant uitvoert.
Bijvoorbeeld, om een tunnel op poort 7777
op te zetten, kun je typen:
Vanaf hier kun je je SOCKS-compatibele applicatie (zoals een webbrowser) wijzen naar de poort die je hebt geselecteerd. De applicatie zal zijn informatie naar een socket sturen die is gekoppeld aan de poort.
De methode om verkeer naar de SOCKS-poort te leiden zal verschillen afhankelijk van de toepassing. Bijvoorbeeld, in Firefox is de algemene locatie Voorkeuren > Geavanceerd > Instellingen > Handmatige proxyconfiguraties. In Chrome kun je de toepassing starten met de –proxy-server= vlag ingesteld. Je wilt de localhost interface en de doorgestuurde poort gebruiken.
Aangezien de verbinding op de achtergrond is, zul je de PID moeten vinden om deze te beëindigen. Je kunt dit doen door te zoeken naar de doorgestuurde poort:
Output1001 5965 0.0 0.0 48168 1136 ? Ss 12:28 0:00 ssh -f -N -D 7777 username@remote_host
1001 6113 0.0 0.0 13648 952 pts/2 S+ 12:37 0:00 grep --colour=auto 8888
Vervolgens kun je het proces beëindigen door te mikken op de PID, welke het nummer is in de tweede kolom, van de regel die overeenkomt met je SSH-commando:
Een andere optie is om de verbinding te starten zonder de -f vlag. Dit houdt de verbinding in de voorgrond, waardoor je het terminalvenster niet kunt gebruiken gedurende de doorsturing. Het voordeel hiervan is dat je de tunnel gemakkelijk kunt beëindigen door CTRL-C in te typen.
Het gebruik van SSH-ontsnappingscodes om verbindingen te beheren
Zelfs na het opzetten van een SSH-sessie is het mogelijk om controle uit te oefenen over de verbinding vanuit de terminal. We kunnen dit doen met iets dat SSH-ontsnappingscodes wordt genoemd, waarmee we kunnen interageren met onze lokale SSH-software vanuit een sessie.
Het forceren van een verbreking vanaf de clientzijde (Hoe te ontsnappen uit een vastgelopen of bevroren sessie)
Een van de meest nuttige functies van OpenSSH die grotendeels onopgemerkt blijft, is het vermogen om bepaalde aspecten van de sessie van binnenuit te bedienen.
Deze commando’s kunnen worden uitgevoerd door te beginnen met het ~
bedieningskarakter binnen een SSH-sessie. Bedieningscommando’s worden alleen geïnterpreteerd als ze het eerste zijn wat wordt getypt na een nieuwe regel, dus druk altijd één of twee keer op ENTER voordat u er een gebruikt.
Een van de meest nuttige bedieningen is het vermogen om een verbinding vanaf de clientzijde te verbreken. SSH-verbindingen worden meestal gesloten door de server, maar dit kan een probleem zijn als de server problemen ondervindt of als de verbinding is verbroken. Door een verbreking vanaf de clientzijde te gebruiken, kan de verbinding vanaf de clientzijde schoon worden gesloten.
Om een verbinding vanaf de client te sluiten, gebruikt u het bedieningskarakter (~
), gevolgd door een punt. Als uw verbinding problemen heeft, bevindt u zich waarschijnlijk in wat een vastgelopen terminalsessie lijkt te zijn. Typ de commando’s ondanks het ontbreken van feedback om een verbreking vanaf de clientzijde uit te voeren:
De verbinding zou onmiddellijk moeten worden verbroken, waardoor u terugkeert naar uw lokale shell-sessie.
Een SSH-sessie op de achtergrond plaatsen
Één van de meest bruikbare functies van OpenSSH die grotendeels onopgemerkt blijft, is het vermogen om bepaalde aspecten van de sessie te regelen vanuit de verbinding zelf.
Deze commando’s kunnen worden uitgevoerd, beginnend met het ~
controlekarakter vanuit een SSH-verbinding. Controlecommando’s worden alleen geïnterpreteerd als ze het eerste zijn dat wordt getypt na een nieuwe regel, dus druk altijd één of twee keer op ENTER
voordat u er een gebruikt.
Een mogelijkheid die dit biedt, is om een SSH-sessie op de achtergrond te plaatsen. Om dit te doen, moeten we het controlekarakter (~
) leveren en vervolgens de conventionele toetsenbordsneltoets uitvoeren om een taak naar de achtergrond te verplaatsen (CTRL-z):
Dit zal de verbinding op de achtergrond plaatsen, waardoor u terugkeert naar uw lokale shell-sessie. Om terug te keren naar uw SSH-sessie, kunt u de conventionele jobregelmechanismen gebruiken.
U kunt onmiddellijk uw meest recente taak op de achtergrond opnieuw activeren door te typen:
Als u meerdere taken op de achtergrond heeft, kunt u de beschikbare taken bekijken door te typen:
Output[1]+ Stopped ssh username@some_host
[2] Stopped ssh username@another_host
Vervolgens kunt u een van de taken naar de voorgrond brengen door de index in de eerste kolom met een procentteken te gebruiken:
Het wijzigen van de doorstuurmogelijkheden op een bestaande SSH-verbinding
Één van de meest handige functies van OpenSSH die vaak over het hoofd wordt gezien, is de mogelijkheid om bepaalde aspecten van de sessie te controleren vanuit de verbinding zelf.
Deze commando’s kunnen worden uitgevoerd door te beginnen met het ~
controlekarakter vanuit een SSH-verbinding. Controlecommando’s worden alleen geïnterpreteerd als ze het eerste zijn wat wordt getypt na een nieuwe regel, dus druk altijd één of twee keer op ENTER voordat je er een gebruikt.
Wat dit mogelijk maakt, is dat een gebruiker de doorstuurconfiguratie kan wijzigen nadat de verbinding al tot stand is gebracht. Dit stelt je in staat om doorstuurregels on-the-fly aan te maken of te verwijderen.
Deze mogelijkheden maken deel uit van de SSH-command-line interface, die tijdens een sessie kan worden benaderd door het controlekarakter (~
) en “C” te gebruiken:
ssh>
Je krijgt dan een SSH-opdrachtprompt, die een zeer beperkt aantal geldige opdrachten heeft. Om de beschikbare opties te zien, kun je vanaf deze prompt -h
typen. Als er niets wordt geretourneerd, moet je mogelijk de verbose-modus van je SSH-uitvoer verhogen door een paar keer ~v
te gebruiken:
Commands:
-L[bind_address:]port:host:hostport Request local forward
-R[bind_address:]port:host:hostport Request remote forward
-D[bind_address:]port Request dynamic forward
-KL[bind_address:]port Cancel local forward
-KR[bind_address:]port Cancel remote forward
-KD[bind_address:]port Cancel dynamic forward
Zoals je kunt zien, kun je gemakkelijk een van de doorstuuringsmogelijkheden implementeren met behulp van de juiste opties (zie de doorstuursectie voor meer informatie). Je kunt ook een tunnel vernietigen met het bijbehorende “kill” commando, gespecificeerd met een “K” voor de letter van het doorstuurtype. Bijvoorbeeld, om een lokale doorsturing (-L
) te stoppen, zou je het -KL
commando kunnen gebruiken. Je hoeft alleen de poort hiervoor op te geven.
Dus, om een lokale poortdoorsturing op te zetten, kun je typen:
Poort 8888
op je lokale computer zal nu kunnen communiceren met de webserver op de host waarmee je verbinding maakt. Wanneer je klaar bent, kun je die doorsturing afbreken door te typen:
Conclusie
De bovenstaande instructies zouden het grootste deel van de informatie moeten bevatten die de meeste gebruikers nodig hebben over SSH voor dagelijks gebruik. Als je andere tips hebt of je favoriete configuraties en methoden wilt delen, voel je vrij om de opmerkingen hieronder te gebruiken.