[MEGOLDVA] ssh config file használata proxyjump különböző user esetén

Fórumok

Sziasztok. Az alábbi érdekességbe futottam bele.

Gyakran sshzom a munkámból kifolyólag, és sima csatlakozáshoz használom a mezei ssh szervernév megoldást (máshoz meg írtam inkább egy scriptet). Ehhez használom a megszokott ocnfig filet. Egész idáig jól működött, míg ki nem találtam, hogy egyes pi4-es gépekre Proxyjump-al is fel tudok menni. Eskü nem jutott eszembe, hogy ezt már rég tudja.

A cél az lenne, hogy a gatewaynek használt szerverre nio userrel, és ssh kulccsal csatlakoznék fel, míg a pi-re már rootként csatlakoznék fel és jelszóval.

Szóval jelenleg a config file-om fontosabb része így néz ki:
 

Host *
    Protocol 2
    User nio
    IdentityFile ~/.ssh/nio

Host VOIP1 v1
    HostName x.x.x.x
    Port 1155
    PermitLocalCommand yes
    LocalCommand printf "Logged to the \e[0m\e[7;31;47mVOIP1\e[m"; echo
    RequestTTY yes
...
...
Host gateway
    Hostname 192.168.88.1

Host pi
    HostName 192.168.99.147
    User root
    ProxyJump gateway
    IdentitiesOnly yes
 

És hát ez nemigazán működik. A pi-re is nio-ként akar felcsatlakozni annak ellenére, hogy User root-al megadtam, hogy rootként próbálkozzon, de mintha nem venné figyelembe, és csak a Host * -nál megadott nio usert akarja használni.

Ez így ilyen formában nem használható, vagy kihagyok valamit? Tisztában vagyok vele, hogy ha nem a Host *-ban adom meg a user-t, hanem minden egyes szerver esetén külön adom meg, akkor valszeg rendesen működne, de ha nem muszáj, akkor nem így csinálnám (legfőképp, mert elég sok gépet tartalmaz ez a config).

 

MEGOLDÁS: a config file végére kell rakni a Host * bejegyzést.

Hozzászólások

"a pi-re már rootként csatlakoznék fel és jelszóval"

Erről az eszkimók teakészítési szabálya jut az eszembe, miszerint "nem készítünk teát az iglu mögötti sárga hóból!"

Nem root userrel menni, de ha már root, akkor kulcsos ssh, _és_ forrásIP-re korlátozva (sshd konfigból)

szerintem a végére kell tenni a csillagos host bejegyzést, hogy az elvárásaidnak megfelelően használja.

vagy forditsd meg a dolgot, deklarald a proxyhosthoz a nio usert.

 ProxyJump user@<jumpserver>

igen, de ha erted mit irok: a pihoz azt modod, h root-kent mesz es a jumphoz pedig deklaralod, h mittomenkicsoda@jumphost. szamomra igy a logikus. :)
*-ot en nem szoktam mondani, a local userem a *, es nem hasznalok identity fileokat, ha nem muszaj, arra van az ssh agent. akkor kell barmi is, ha ettol el kell terjek. tisztabb, szarazabb, biztonsagosabb erzes.

config-jának feldolgozása az első egyező sorig van > ez jopar szoftver eseten igy van. igaz, nem is nagyon reklamozzak sehol :)

Host asd
        Hostname a.b.c.d
        ProxyJump root@q.w.e.r
        User qwe

nekem ez igy tokeletesen mukodik

 

dorsy@wsl64:~$ ssh asd -v
...
debug1: Executing proxy command: exec ssh -l root -v -W '[a.b.c.d]:22' q.w.e.r
...
qwe@a.b.c.d's password:

gyakorlatilag a konfig a fentebbi exec utani commandot csattintja el. ha meg ennel is extremebb kell, arra pedig ott a ProxyCommand. (man ssh_config) pl: ssh -i /akarmi/valami -W user@jumphost -A ssh user2@targethost -A -D 34567
vagy amit csak elkepzelsz :) akar tobb kommand is lehet, pl:
ssh-add ~/.ssh/git_id_rsa; ssh -W user@jumphost -A ssh user2@targethost -A -D 34567

Mert a Host * megzavarja, dobd ki a rákba.

Nekem rengeteg problémám volt vele, amióta nem használom, azóta az SSH úgy működik, ahogy szerintem logikus.

Illetve én a ProxyJump helyett a ProxyCommand -ot használom, mert végtelenül testreszabható:

Host asd
    HostName 10.1.2.3
    User root
    ProxyCommand ssh -i ~/.ssh/id_rsa_jump hron@jump.hron.me -W %h:%p
    PubkeyAuthentication no

Blog | @hron84

valahol egy üzemeltetőmaci most mérgesen toppant a lábával 

via @snq-