Ciągle łączę się z wieloma maszynami, z różnych fizycznych lokalizacji (a więc z różnych fizycznych maszyn). Większość tego jest wykonywana przez ssh, czasem wymagana jest maszyna bramkowa lub dwie (które wywołuję przez ProxyCommand
in ~/.ssh/config
). Chciałbym wiedzieć, czy istnieje metoda identyfikacji adresu IP lub nazwy hosta komputera, który wywołuje połączenie początkowe (tj. Komputer, na którym pracuję) na zdalnym końcu?
- Nie chcę wysyłać zmiennych środowiskowych, ponieważ na niektórych komputerach nie mam ustawionego katalogu głównego
PermitUserEnvironment
. $SSH_CLIENT
Zmienna jest przydatna dla połączeń bezpośrednich, ale tylko wymienia najnowszą bramę.
Mój obecny pomysł na rozwiązanie polega na przechwytywaniu $SSH_CLIENT
, ssh do niego, znajdowaniu wartości tej maszyny $SSH_CLIENT
i powtarzaniu, dopóki ona nie istnieje; następnie chwyć nazwę hosta i cofnij jakoś.
Wydaje się jednak, że to trochę włamanie; czy ktoś ma lepszą metodę?
Pracuję głównie w powłoce bash, ale cieszę się również z sugestii, które również jej nie używają.