SSH ProxyJumpin ja SSH ProxyCommandin käyttäminen Linuxissa


Lyhyesti: Tässä oppaassa esittelemme, kuinka SSH ProxyJump- ja SSH ProxyCommand -komentoja käytetään yhdistäessäsi hyppypalvelimeen.

Edellisessä oppaassamme SSH Jump Serverin määrittämisestä käsittelimme Bastion Host -konseptin. Bastion-isäntä tai Jump-palvelin on välityslaite, johon SSH-asiakas muodostaa yhteyden ennen kuin pääsee kohde-etä-Linux-järjestelmään. SSH Jump -palvelin toimii porttina IT-resursseihin, mikä vähentää hyökkäyspintaa.

SSH ProxyJump- ja ProxyCommand-komennot määrittävät, kuinka asiakas muodostaa yhteyden etäpalvelimeen hyppypalvelimen, hyppypalvelimen tai tukiasemapalvelimen kautta.

Tämä opas tuo esiin SSH ProxyJumpin ja SSH Proxy Commandin Linuxissa.

Sisällysluettelo

Yhdistä Remote Linux SSH ProxyJump -komennolla

ProxyJump-komento on merkitty -J-lipulla. Se otettiin käyttöön OpenSSH-palvelimen versiossa 7.3, ja se auttaa sinua muodostamaan yhteyden etäkohteeseen ohittamalla linnakkeen tai hyppypalvelimen.

Alla oleva syntaksi näyttää, kuinka tätä vaihtoehtoa käytetään:

$ ssh -J <jump-server> <remote-target>

Useiden bastion- tai jump-palvelimien tapauksessa syntaksi on seuraavanlainen.

$ ssh -J <jump-server-1> <jump-server-2> <remote-target>

Molemmissa tapauksissa sinut kirjataan sisään pääkäyttäjänä joka vaiheessa. Tämä ei ole ihanteellinen turvallisuussyistä, joten saatat haluta luoda erilaisia käyttäjiä jokaisessa tapauksessa.

Voit määrittää erikseen erilaisia käyttäjiä ja SSH-portteja kuvan mukaisesti.

$ ssh -J <[email :port> <[email :port>

Esittelemme ProxyJump-lipun toiminnassa, meillä on yksinkertainen asennus kuvan mukaisesti.

Jump Server IP:		173.82.232.55		User: james
Remote Target IP:	173.82.227.89		User: tecmint

Jos haluat muodostaa yhteyden etäkohteeseen Jump-palvelimen avulla, komento näyttää seuraavalta.

$ ssh -J [email  [email 

Komento pyytää sinua syöttämään hyppypalvelimen käyttäjän salasanan ja sen jälkeen kohdejärjestelmän salasanan, jonka perusteella sinulle myönnetään pääsy kohdejärjestelmään.

Jos käytät säännöllisesti tiettyä linnaketta yhteyden muodostamiseen tiettyyn etäkohteeseen, voit liittää seuraavan ProxyJump-määrityksen ~/.ssh/config-tiedostoon tehdäksesi yhteyden saumattomasta. Kun näin tapahtuu, sinut todennetaan vain kerran, ja tämä tapahtuu vain etäkohteessa.

Host host-jump
User james
Hostname 173.82.232.55

Host host_destination
User tecmint
Hostname 173.82.227.89
Port 22

Yllä olevaa kokoonpanoa käyttämällä voit muodostaa yhteyden kohteeseen kuvan osoittamalla tavalla.

$ ssh -J host_destination

Yhdistä Remote Linux SSH ProxyCommand -komennolla

Ennen SSH-välityspalvelinhyppiä ProxyCommand oli ainoa tapa hypätä isännät tavoittamaan etäkohde. Se toimii välittämällä stdin (vakiotulo) ja stdout (standard out) etäkohteesta hyppypalvelimen tai bastionin kautta.

ProxyCommand ottaa seuraavan syntaksin.

$ ssh -o ProxyCommand="ssh -W %h:%p <jump server>" <remote target>

Tässä -W - %h:%p-argumentit välittävät stdinin ja ulos etäisäntään (%h) ja kaukosäätimeen. isännän portti (%p).

Jotta komento toteutetaan, komentomme näyttäisi tältä

$ ssh -o ProxyCommand="ssh -W %h:%p 173.82.232.55" 173.82.227.89

Tietenkin koko komennon kirjoittaminen on työlästä ja aikaa vievää. Voit välttää näin pitkän komennon kirjoittamisen lisäämällä seuraavat koodirivit ~/.ssh/config-tiedostoosi.

Host host-destination
Hostname 173.82.227.89
ProxyCommand ssh -q -W %h:%p host-jump

Tallenna ja poistu.

Nyt sinun tarvitsee vain suorittaa seuraava komento muodostaaksesi yhteyden etäpalvelimeen.

$ ssh host-destination

Tässä oppaassa osoitimme, kuinka ProxyJump- ja ProxyCommand-komennot toimivat. Yleensä ProxyJump on parempi vaihtoehto ProxyCommandille ja tarjoaa helpomman ja saumattoman tavan muodostaa yhteys etäkohteeseen jump-isännän kautta.