SSH key forwarding működik (de nem kellene)

Adott két gép, A és B, mindkettőn bent van a saját SSH kulcsom, mindkettőre be tudok lépni.
Ha bejelentkezek A-ra és onnan átSSHzok B-re, beenged az agent forwarding miatt (továbbküldi a saját kulcsomat).

Ez normál esetben néha kényelmes, de most kivételesen ennek nem örülök. Azt szeretném megoldani, hogy A-ról csatlakozva B-re ne az én kulcsomat vigye tovább, hanem az A szerveren lévő felhasználóét, ha az létezik. Kliens oldalról tudom tiltani (A-ról), de jobb lenne, ha a B-n futó SSH daemon venné észre, és tiltaná a továbbított kulcs használatát. 

Az "AllowAgentForwarding no" hatástalan (ha B-n állítom be). Mit rontok el?

Hozzászólások

Szerkesztve: 2022. 07. 26., k – 20:07

ssh -a

?

Milyen módon kapcsolódsz?

A-ról egyszerűen ssh -a user@B, és simán beenged B. Ez a kulcs amit ír, nem létezik A-n, hanem ez az én kulcsom, amit az én gépemről hoz.

debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:xxxxxxxxxxxxx /Users/macadm/.ssh/id_rsa
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
debug1: Authentication succeeded (publickey).
Authenticated to ...

Ezzel tudom megakadályozni A-n (vagy nyilván ha explicit megadok egy másik kulcsot):

ssh user@B -o IdentityAgent=none

De nekem olyan megoldás kellene, ami a B-n tiltja ezt meg. De gyanítom, hogy ez így nem fog menni, mert nem tudja megkülönböztetni, hogy honnan kapja.

Így van, B-re történő belépéskor B gépnek nincs se beleszólása se tudomása róla hogy honnan jön a kulcs.

Az agent forwardingot vagy a saját gépeden tilthatod le konfogurációból (akár mindenhová, akár csak A gép felé) vagy az A gépen is bekonfigurálhatod hogy ne használja a forwardolt agent socketet.

Szerkesztve: 2022. 07. 26., k – 20:54

AllowAgentForwarding szerintem az A-n kéne 

Végső soron akkor a [helyi] ssh config-ba:

Host A

  ForwardAgent no

És így A nem fogja továbbítani már.

Bár én a helyedben inkább a gyarkorlatot változtatnám: csak ott legyen bekapcsolva a továbbítás ahol az indokolt. ( Host * a default: ne )

B szerveren az authorized_keys fájlban a kulcsod elé tegyed be a  from="ipcim,hostnév" kifejezést. Ezzel lényegében felsorolod, hogy az adott kulcsot milyen távoli gépekről fogadja csak el. Így korlátozni tudod a kulcshasznalatot