[comment]: # translation:outdated

[comment]: # ({26d9bc44-26d9bc44})
# 9 SSH controles

[comment]: # ({/26d9bc44-26d9bc44})

[comment]: # ({206bdf94-4cdff2c1})
### Overzicht

SSH-controles worden uitgevoerd als monitoring zonder agent. Voor SSH-controles is geen Zabbix-agent nodig.

Om SSH-controles uit te voeren, moet de Zabbix-server in eerste instantie worden [geconfigureerd](/manual/installation/install#from_the_sources) met SSH2-ondersteuning (libssh of libssh2). Zie ook: [Vereisten](/manual/installation/requirements#serverproxy).

::: noteimportant
Vanaf RHEL 8 wordt alleen libssh ondersteund. Voor andere distributies wordt libssh aanbevolen boven libssh2.
:::

[comment]: # ({/206bdf94-4cdff2c1})

[comment]: # ({76b2e481-5d32b87c})
#### Configuratie

[comment]: # ({/76b2e481-5d32b87c})

[comment]: # ({69e9c4a5-753f5c30})
##### Wachtwoord authenticatie

SSH-controles bieden twee authenticatiemethoden: een gebruikersnaam/wachtwoord-paar en een authenticatie op basis van een sleutelbestand.

Als u geen gebruik wilt maken van sleutels, is geen aanvullende configuratie vereist, behalve het koppelen van libssh of libssh2 aan Zabbix als u de software zelf bouwt.

[comment]: # ({/69e9c4a5-753f5c30})

[comment]: # ({e10dab7d-44fd07da})
##### Sleutelbestand authenticatie

Om sleutelgebaseerde authenticatie te gebruiken voor SSH-items, zijn bepaalde wijzigingen in de serverconfiguratie vereist.

Open het Zabbix-serverconfiguratiebestand ([*zabbix\_server.conf*](/manual/appendix/config/zabbix_server)) als `root` en zoek de volgende regel:

```ini
# SSHKeyLocation=
```

Verwijder het commentaarsteken en stel het volledige pad in naar de map waar de openbare en privésleutels zich zullen bevinden:

```ini
SSHKeyLocation=/home/zabbix/.ssh
```

Sla het bestand op en herstart vervolgens de Zabbix-server.

Het pad */home/zabbix* is hier de home-directory voor het *zabbix*-gebruikersaccount, en *.ssh* is een map waarin standaard openbare en privésleutels zullen worden gegenereerd door een [ssh-keygen](http://en.wikipedia.org/wiki/Ssh-keygen)-commando binnen de home-directory.

Gewoonlijk maken installatiepakketten van Zabbix-server van verschillende OS-distributies het *zabbix*-gebruikersaccount aan met een home-directory ergens anders, bijvoorbeeld */var/lib/zabbix* (zoals bij systeemaccounts).

Voordat u de sleutels genereert, kunt u de home-directory herschikken naar */home/zabbix*, zodat deze overeenkomt met de Zabbix-serverconfiguratieparameter `SSHKeyLocation` die hierboven is genoemd.

::: noteclassic
De volgende stappen kunnen worden overgeslagen als het *zabbix*-account handmatig is toegevoegd volgens de [installatie
sectie](/manual/installation/install#create_user_account).
In dat geval heeft het *zabbix*-account hoogstwaarschijnlijk al de home-directory */home/zabbix*.
:::

Om de home-directory van het *zabbix*-gebruikersaccount te wijzigen, moeten alle werkprocessen die het gebruiken, worden gestopt:

```bash
service zabbix-agent stop
service zabbix-server stop
```

Om de locatie van de home-directory te wijzigen en tegelijkertijd te proberen deze te verplaatsen (indien deze al bestaat), moet het volgende commando worden uitgevoerd:

```bash
usermod -m -d /home/zabbix zabbix
```

Het is ook mogelijk dat een home-directory nog niet bestond op de oude locatie, dus deze moet worden gemaakt op de nieuwe locatie. Een veilige poging om dat te doen is:

```bash
test -d /home/zabbix || mkdir /home/zabbix
```

Om er zeker van te zijn dat alles veilig is, kunnen aanvullende commando's worden uitgevoerd om machtigingen in te stellen voor de home-directory:

```bash
chown zabbix:zabbix /home/zabbix
chmod 700 /home/zabbix
```

Eerder gestopte processen kunnen nu weer worden gestart:

```bash
service zabbix-agent start
service zabbix-server start
```

Nu kunnen de stappen voor het genereren van de openbare en privésleutels worden uitgevoerd met de volgende commando's (voor een betere leesbaarheid zijn commandopromptopdrachten uitgeschakeld):

```bash
sudo -u zabbix ssh-keygen -t rsa
# Generating public/private rsa key pair.
# Enter file in which to save the key (/home/zabbix/.ssh/id_rsa):
/home/zabbix/.ssh/id_rsa
# Enter passphrase (empty for no passphrase):
<Laat leeg>
# Enter same passphrase again: 
<Laat leeg>
# Your identification has been saved in /home/zabbix/.ssh/id_rsa.
# Your public key has been saved in /home/zabbix/.ssh/id_rsa.pub.
# The key fingerprint is:
# 90:af:e4:c7:e3:f0:2e:5a:8d:ab:48:a2:0c:92:30:b9 zabbix@it0
# The key's randomart image is:
# +--[ RSA 2048]----+
# |                 |
# |       .         |
# |      o          |
# | .     o         |
# |+     . S        |
# |.+   o =         |
# |E .   * =        |
# |=o . ..* .       |
# |... oo.o+        |
# +-----------------+
```

::: noteclassic
De openbare en privésleutels (*id\_rsa.pub* en *id\_rsa*)
zijn standaard gegenereerd in de map */home/zabbix/.ssh*,
wat overeenkomt met de Zabbix-serverconfiguratieparameter `SSHKeyLocation`.
:::

::: noteimportant
Andere sleuteltypes dan "rsa" kunnen worden ondersteund door het
ssh-keygen hulpprogramma en SSH-servers, maar ze worden mogelijk niet ondersteund door
libssh2 dat door Zabbix wordt gebruikt.
:::

[comment]: # ({/e10dab7d-44fd07da})

[comment]: # ({b84f1792-7e6b0273})
##### Configuratieformulier voor shell

Deze stap moet slechts eenmaal worden uitgevoerd voor elke host die zal worden
gecontroleerd met SSH-controles.

Met behulp van de volgende commando's kan het **openbare** sleutelbestand worden geïnstalleerd
op een externe host *10.10.10.10*, zodat de SSH-controles kunnen worden uitgevoerd
met een *root*-account (voor een betere leesbaarheid zijn commandopromptopdrachten uitgeschakeld):

```bash
sudo -u zabbix ssh-copy-id root@10.10.10.10
# The authenticity of host '10.10.10.10 (10.10.10.10)' can't be established.
# RSA key fingerprint is 38:ba:f2:a4:b5:d9:8f:52:00:09:f7:1f:75:cc:0b:46.
# Are you sure you want to continue connecting (yes/no)?
yes
# Warning: Permanently added '10.10.10.10' (RSA) to the list of known hosts.
# root@10.10.10.10's password:
<Voer het wachtwoord van root in>
# Now try logging into the machine, with "ssh 'root@10.10.10.10'",
# and check to make sure that only the key(s) you wanted were added.
```

Nu is het mogelijk om de SSH-login te controleren met behulp van de standaard privésleutel
(*/home/zabbix/.ssh/id\_rsa*) voor het *zabbix*-gebruikersaccount:

```bash
sudo -u zabbix ssh root@10.10.10.10
```

Als de login succesvol is, dan is het configuratiegedeelte in de shell voltooid
en kan de externe SSH-sessie worden afgesloten.

[comment]: # ({/b84f1792-7e6b0273})

[comment]: # ({acd61812-fe23daa8})
##### Itemconfiguratie

De daadwerkelijke uit te voeren commando's moeten worden geplaatst in het veld *Uitgevoerd script* in de itemconfiguratie.
Meerdere commando's kunnen na elkaar worden uitgevoerd door ze op een nieuwe regel te plaatsen. In dit geval worden de geretourneerde waarden ook opgemaakt als meerdere regels.

![](../../../../../assets/en/manual/config/items/itemtypes/ssh_item.png){width="600"}

Alle verplichte invoervelden zijn gemarkeerd met een rood asterisk.

De velden die specifieke informatie vereisen voor SSH-items zijn:

|Parameter|Omschrijving|Opmerkingen|
|--|------|------|
|*Type*|Selecteer hier **SSH-agent**.| |
|*Sleutel*|Unieke (per host) item-sleutel in het formaat **ssh.run\[unieke korte beschrijving,<ip>,<poort>,<codering>,<ssh-opties>\]**|**unieke korte beschrijving** is vereist en moet uniek zijn voor elk SSH-item per host.<br><br>De standaardpoort is 22, niet de poort die is opgegeven in de interface waaraan dit item is toegewezen.<br><br>**ssh-opties** (ondersteund sinds versie 6.4.0) stellen u in staat om extra SSH-opties door te geven in het formaat *sleutel1=waarde1;sleutel2=waarde2,waarde3*. Meerdere waarden voor één sleutel kunnen worden doorgegeven, gescheiden door een komma (in dat geval moet de parameter [geciteerd](/manual/config/items/item/key#parameter---quoted-string) zijn); meerdere optiesleutels kunnen worden doorgegeven, gescheiden door een puntkomma. Ondersteunde optiesleutels en waarden zijn afhankelijk van de SSH-bibliotheek. Houd er rekening mee dat het "+"-teken voor het toevoegen van cipher-instellingen en "!" voor het uitschakelen van specifieke cipher-instellingen (zoals in GnuTLS en OpenSSL) niet worden ondersteund.<br><br>Voorbeelden:<br>=> `ssh.run[KexAlgorithms,127.0.0.1,,,Ciphers=aes128-ctr]`<br>=> `ssh.run[KexAlgorithms,,,,"KexAlgorithms=diffie-hellman-group1-sha1;HostkeyAlgorithms=ssh-rsa,ssh-dss,ecdh-sha2-nistp256"]`|
|*Verificatiemethode*|Een van de "Wachtwoord" of "Openbare sleutel".| |
|*Gebruikersnaam*|Gebruikersnaam om te verifiëren op de externe host. Vereist.| |
|*Openbare sleutelbestand*|Bestandsnaam van de openbare sleutel als *Verificatiemethode* "Openbare sleutel" is. Vereist.|Voorbeeld: *id\_rsa.pub* - standaard bestandsnaam van het openbare sleutelbestand dat is gegenereerd met het commando [ssh-keygen](http://en.wikipedia.org/wiki/Ssh-keygen).|
|*Prive-sleutelbestand*|Bestandsnaam van de privésleutel als *Verificatiemethode* "Openbare sleutel" is. Vereist.|Voorbeeld: *id\_rsa* - standaard bestandsnaam van het privésleutelbestand.|
|*Wachtwoord* of<br>*Sleutel-wachtwoordzin*|Wachtwoord om te verifiëren of<br>Sleutel-wachtwoordzin **indien** deze is gebruikt voor de privésleutel.|Laat het veld *Sleutel-wachtwoordzin* leeg als er geen wachtwoordzin is gebruikt.<br>Zie ook [bekende problemen](/manual/installation/known_issues#ssh_checks) met betrekking tot het gebruik van een wachtwoordzin.|
|*Uitgevoerd script*|Uitgevoerd shell-commando(s) met behulp van een SSH externe sessie.|Voorbeelden:<br>*date +%s*<br>*service mysql-server status*<br>*ps auxww \| grep httpd \| wc -l*|

::: noteimportant
De libssh2-bibliotheek kan uitvoerbare scripts mogelijk
inkorten tot \~32KB.
:::

[comment]: # ({/acd61812-fe23daa8})
