연결이 설정될 때마다(루트가 아닌 사용자로) 원격 호스트에 IP를 저장합니다.

연결이 설정될 때마다(루트가 아닌 사용자로) 원격 호스트에 IP를 저장합니다.

직장에는 (임시적으로) 동적 로컬 LAN IP가 있지만 집에서 연결하려면 호스트 A(정적 IP)로 SSH를 통해 연결하고 거기에서 내 컴퓨터에 연결합니다.

그러나 IP가 변경되므로 연결이 설정될 때마다 호스트 A에 자주 저장하고 싶습니다(케이블 불량으로 인해 이더넷 연결이 끊어지는 경우가 많습니다).

/etc/NetworkManager/dispatcher.d/90exportIPNetowrkManager를 사용하고 있으므로 다음 명령을 실행하는 파일을 만들었습니다 .

 ssh hostA "echo $(date)  enp4s0f2 IP: $(/sbin/ifconfig enp4s0f2 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://') >> todaysElanIP";

그러면 내 IP를 가져와 todaysElanIP호스트 A의 파일 에 저장합니다.

문제는 이 스크립트가 루트로 실행되는데 내 키가 거기에 없다는 것입니다. 때로는 bash에서 이 명령을 실행하면 작동합니다. 하지만 네트워크가 시작될 때마다 자동으로 실행되기를 원합니다.

시도했지만 runuser -l myUser이 방법으로는 ssh-agent에 액세스할 수 없습니다.

매번 작동할 필요는 없습니다. 예를 들어 시작 시 ssh-agent에 키를 추가하지 않았습니다. 다음에 네트워크가 다운되고 다시 내보내기가 발생하면 이 방법이 효과적입니다.

루트 사용자에게는 어려울 것 같은 작업을 루트가 아닌 사용자에게는 쉽게 수행할 수 있는 방법이 다소 혼란스럽습니다.

관련 정보