Fórumok
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
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.
Ezzel tudom megakadályozni A-n (vagy nyilván ha explicit megadok egy másik kulcsot):
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.
Köszönöm mindkettőtöknek!
AllowAgentForwarding szerintem az A-n kéne
Végső soron akkor a [helyi] ssh config-ba:
É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