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.
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.