[comment]: # ({96aacdf0-26d9bc44})
# 11 SSH aģents

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

[comment]: # ({d9efe87e-4cdff2c1})
### Pārskats

SSH pārbaudes tiek veiktas kā uzraudzība bez aģenta. SSH pārbaudēm Zabbix aģents nav
nepieciešams.

Lai veiktu SSH pārbaudes, Zabbix serverim sākotnēji jābūt
[konfigurētam](/manual/installation/install/sources#configure-the-sources) ar SSH2
atbalstu (libssh vai libssh2). Skatiet arī:
[Prasības](/manual/installation/requirements#serverproxy).

::: noteimportant
Sākot ar RHEL 8, tiek atbalstīts tikai libssh. Citām distribūcijām libssh ir ieteicams libssh2 vietā.
:::

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

[comment]: # ({76b2e481-5d32b87c})
### Konfigurācija

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

[comment]: # ({69e9c4a5-753f5c30})
##### Autentifikācija ar ieejas frāzi

SSH pārbaudes nodrošina divas autentifikācijas metodes — lietotājvārda/paroles pāri un autentifikāciju, kas balstīta uz atslēgas failu.

Ja neplānojat izmantot atslēgas, papildu konfigurācija nav nepieciešama, izņemot libssh vai libssh2 sasaisti ar Zabbix, ja veidojat no pirmkoda.

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

[comment]: # ({90e14e64-44fd07da})
##### Atslēgu faila autentifikācija

Lai SSH vienumiem izmantotu autentifikāciju, kas balstīta uz atslēgām, ir nepieciešamas noteiktas izmaiņas servera konfigurācijā.

Atveriet Zabbix servera konfigurācijas failu
([*zabbix\_server.conf*](/manual/concepts/server/server_params)) kā `root`
un atrodiet šādu rindu:

```ini
# SSHKeyLocation=
```

Noņemiet komentāru un norādiet pilnu ceļu uz mapi, kur atradīsies publiskās un privātās atslēgas:

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

Saglabājiet failu un pēc tam restartējiet Zabbix serveri.

Ceļš */home/zabbix* šeit ir *zabbix* lietotāja konta mājas katalogs,
un *.ssh* ir direktorijs, kurā pēc noklusējuma publiskās un privātās atslēgas
tiks ģenerētas ar [ssh-keygen](http://en.wikipedia.org/wiki/Ssh-keygen)
komandu mājas katalogā.

Parasti Zabbix servera instalācijas pakotnes dažādās OS
distribūcijās izveido *zabbix* lietotāja kontu ar mājas katalogu citā vietā,
piemēram, */var/lib/zabbix* (kā sistēmas kontiem).

Pirms atslēgu ģenerēšanas varat pārvietot mājas
katalogu uz */home/zabbix*, lai tas
atbilstu iepriekš minētajam Zabbix servera
konfigurācijas parametram `SSHKeyLocation`.

::: noteclassic
Tālāk norādītās darbības var izlaist, ja *zabbix* konts ir pievienots manuāli
saskaņā ar [instalācijas
sadaļu](/manual/installation/install/sources#create-user-account).
Šādā gadījumā *zabbix* konta mājas katalogs, visticamāk, jau ir
*/home/zabbix*.
:::

Lai mainītu *zabbix* lietotāja konta mājas katalogu, ir jāaptur visi
darbojošies procesi, kas to izmanto:

```bash
systemctl stop zabbix-agent
systemctl stop zabbix-server
```

Lai mainītu mājas kataloga atrašanās vietu un mēģinātu to pārvietot (ja tas
eksistē), jāizpilda šāda komanda:

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

Iespējams arī, ka vecajā
vietā mājas katalogs neeksistēja, tāpēc tas jāizveido jaunajā vietā. Drošs veids, kā to izdarīt, ir:

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

Lai pārliecinātos, ka viss ir droši, var izpildīt papildu komandas, lai
iestatītu mājas kataloga atļaujas:

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

Iepriekš apturētos procesus tagad var atkal palaist:

```bash
systemctl start zabbix-agent
systemctl start zabbix-server
```

Tagad publisko un privāto atslēgu ģenerēšanas darbības var veikt ar
šādām komandām (lasāmības labad komandu uzvednes ir komentētas):

```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):
<Leave empty>
# Enter same passphrase again: 
<Leave empty>
# 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
Publiskās un privātās atslēgas (*id\_rsa.pub* un *id\_rsa*)
pēc noklusējuma ir ģenerētas */home/zabbix/.ssh* direktorijā,
kas atbilst Zabbix servera `SSHKeyLocation` konfigurācijas
parametram.
:::

::: noteimportant
Atslēgu tipi, kas nav "rsa", var tikt atbalstīti ar
ssh-keygen rīku un SSH serveriem, taču tos var neatbalstīt
libssh2, ko izmanto Zabbix.
:::

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

[comment]: # ({b84f1792-7e6b0273})
##### Shell konfigurācijas forma

Šī darbība jāveic tikai vienu reizi katram hostam, kas tiks
uzraudzīts ar SSH pārbaudēm.

Izmantojot tālāk norādītās komandas, **publiskās** atslēgas failu var instalēt
attālajā hostā *10.10.10.10*, lai SSH pārbaudes varētu veikt,
izmantojot *root* kontu (labākai lasāmībai komandu uzvednes ir komentētas):

```bash
sudo -u zabbix ssh-copy-id root@10.10.10.10
# Hosta '10.10.10.10 (10.10.10.10)' autentiskumu nevar noteikt.
# RSA atslēgas pirkstu nospiedums ir 38:ba:f2:a4:b5:d9:8f:52:00:09:f7:1f:75:cc:0b:46.
# Vai tiešām vēlaties turpināt savienošanos (yes/no)?
yes
# Brīdinājums: '10.10.10.10' (RSA) ir neatgriezeniski pievienots zināmo hostu sarakstam.
# root@10.10.10.10 parole:
<Ievadiet root paroli>
# Tagad mēģiniet pieteikties datorā ar "ssh 'root@10.10.10.10'",
# un pārbaudiet, vai tika pievienota tikai tā(s) atslēga(s), kuru(s) vēlējāties.
```

Tagad ir iespējams pārbaudīt SSH pieteikšanos, izmantojot noklusējuma privāto atslēgu
(*/home/zabbix/.ssh/id\_rsa*) *zabbix* lietotāja kontam:

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

Ja pieteikšanās ir veiksmīga, tad konfigurācijas daļa shell vidē ir
pabeigta un attālo SSH sesiju var aizvērt.

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

[comment]: # ({6dca8e7a-fe23daa8})
##### Vienuma konfigurācija

Faktiskā(-ās) izpildāmā(-ās) komanda(-as) jānorāda vienuma konfigurācijas laukā *Executed script*.
Vairākas komandas var izpildīt vienu pēc otras, ievietojot katru jaunā
rindā. Šādā gadījumā arī atgrieztās vērtības tiks formatētas kā vairākrindu teksts.

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

Visi obligātie ievades lauki ir atzīmēti ar sarkanu zvaigznīti.

Lauki, kuriem SSH vienumiem nepieciešama specifiska informācija, ir šādi:

|Parameter|Description|Comments|
|--|------|------|
|*Type*|Šeit atlasiet **SSH aģents**.| |
|*Key*|Unikāla (katram hostam) vienuma atslēga formātā **ssh.run\[unikāls īss apraksts,<ip>,<ports>,<kodējums>,<ssh options>,<subsystem>\]**|**unikāls īss apraksts** ir obligāts, un tam jābūt unikālam katram SSH vienumam katrā hostā.<br><br>Noklusējuma ports ir 22, nevis ports, kas norādīts saskarnē, kurai šis vienums ir piesaistīts.<br><br>**ssh options** ļauj nodot papildu SSH opcijas formātā *key1=value1;key2=value2,value3*. Vienai atslēgai var nodot vairākas vērtības, atdalot tās ar komatu (šajā gadījumā parametrs ir jāievieto [pēdiņās](/manual/config/items/item/key#parameter--quoted-string)); vairākas opciju atslēgas var nodot, atdalot tās ar semikolu.<br><br>Tiek atbalstītas šādas opciju atslēgas: `KexAlgorithms`, `HostkeyAlgorithms`, `Ciphers`, `MACs`, `PubkeyAcceptedKeyTypes`. Opciju atslēgu un vērtību atbalsts ir atkarīgs no SSH bibliotēkas (piemēram, `PubkeyAcceptedKeyTypes` tiek atbalstīts tikai ar libssh); ja opcija netiek atbalstīta, tiks atgriezta kļūda, un vienums kļūs neatbalstīts.<br><br>Ņemiet vērā, ka zīme "+" šifrēšanas iestatījumu pievienošanai un "!" konkrētu šifrēšanas iestatījumu atspējošanai (kā GnuTLS un OpenSSL gadījumā) netiek atbalstītas.<br><br>Piemēri:<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"]`<br>=> `ssh.run[PubkeyAcceptedKeyTypes,127.0.0.1,,,PubkeyAcceptedKeyTypes=ssh-rsa]`<br><br>**subsystem** ļauj nodot SSH apakšsistēmu, ierobežojot SSH savienojumu līdz konkrētām apakšsistēmas atļautām darbībām (piemēram, failu pārsūtīšanai, izmantojot SFTP, vai tīkla ierīču pārvaldībai, izmantojot NETCONF). Ņemiet vērā, ka apakšsistēmas izmantošanai var būt nepieciešama arī specifiska skripta sintakse parametrā *Executed script*.<br><br>Piemēri:<br>=> `ssh.run[SFTPBackup,192.0.2.18,,,,sftp]`<br>=> `ssh.run[Cisco1234,192.0.2.18,,,,netconf]`|
|*Authentication method*|Viena no vērtībām: "Password" vai "Public key".| |
|*User name*|Lietotājvārds (līdz 255 rakstzīmēm) autentificēšanai attālajā hostā. Obligāts.| |
|*Public key file*|Publiskās atslēgas faila nosaukums, ja *Authentication method* ir "Public key". Obligāts.|Piemērs: *id\_rsa.pub* — noklusējuma publiskās atslēgas faila nosaukums, ko ģenerē komanda [ssh-keygen](http://en.wikipedia.org/wiki/Ssh-keygen).|
|*Private key file*|Privātās atslēgas faila nosaukums, ja *Authentication method* ir "Public key". Obligāts.|Piemērs: *id\_rsa* — noklusējuma privātās atslēgas faila nosaukums.|
|*Password* or<br>*Key passphrase*|Parole (līdz 255 rakstzīmēm) autentificēšanai vai<br>Paroles frāze, **ja** tā tika izmantota privātajai atslēgai.|Atstājiet lauku *Key passphrase* tukšu, ja paroles frāze netika izmantota.<br>Skatiet arī [zināmās problēmas](/manual/installation/known_issues#ssh-checks) saistībā ar paroles frāzes izmantošanu.|
|*Executed script*|Izpildāmā(-ās) čaulas komanda(-as), izmantojot SSH attālo sesiju.|Izpildītās(-o) čaulas komandas(-u) atgrieztā vērtība ir ierobežota līdz 16MB (ieskaitot beigu atstarpes, kas tiek apgrieztas); attiecas arī [datu bāzes ierobežojumi](/manual/config/items/item#item-data-limits).<br><br>Ņemiet vērā, ka libssh2 bibliotēka var saīsināt izpildāmos skriptus līdz \~32kB.<br><br>Piemēri:<br>`date +%s`<br>`systemctl status mysql-server`<br>`ps auxww \| grep httpd \| wc -l`<br><br>Piemērs (NETCONF apakšsistēmai):<br>`<rpc>`<br>`<get-software-information/>`<br>`</rpc>`<br>`]]>]]>`<br>`<rpc>`<br>`<close-session/>`<br>`</rpc>`<br>`]]>]]>`|

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