현재 서버에 연결된 컴퓨터를 찾는 방법

현재 서버에 연결된 컴퓨터를 찾는 방법

나는 종종 사용 가능한 하나의 Linux/HP-UX 서버(server1이라고 가정)에서 작업한 다음 실행 ssh server2((server2라고 가정))하고 다른 Linux/HP-UX 서버에서 작업을 시작합니다. 그런 다음 다른 서버((server3이라고 가정)에 연결하여 처리를 시작할 수 있습니다. server3에서 작업하는 동안 서버에서 명령줄 정보를 얻으려면 어떻게 해야 합니까?

그러면 server3에서는 server2에서 정보를 얻고, server2에서는 server1에서 정보를 얻고 싶습니다. 그 명령이나 유틸리티는 무엇입니까?

답변1

적어도 Linux의 경우 who <arg> <arg>연결된 호스트가 표시됩니다.

$ who hates java
error    pts/3        2013-11-20 08:35 (underground)

HP/UX 매뉴얼 페이지에는 해당 운영 체제에도 해당된다는 내용이 나와 있습니다. 그래야 합니다. 저는 수십 년 동안 다양한 유닉스에서 이 기능을 사용해 왔습니다.

답변2

SSH는 연결 성공 시 항상 여러 개를 설정합니다.환경 변수, 포함하다:

SSH_CONNECTION

연결의 클라이언트 측과 서버 측을 식별합니다. 이 변수에는 공백으로 구분된 4개의 값(클라이언트 IP 주소, 클라이언트 포트 번호, 서버 IP 주소, 서버 포트 번호)이 포함되어 있습니다.

예는 다음과 같습니다.

$ ssh user@host
user@host$ echo $SSH_CONNECTION
192.168.223.17 36673 192.168.223.229 22

따라서 이 환경 변수를 가져온 다음 nslookup연결을 완료한 호스트에 대한 정보를 얻을 수 있습니다.

user@host$ nslookup "${SSH_CONNECTION%% *}"'
...
Name:      192.168.223.17
Address 1: 192.168.223.17 foo.bar

단, who(1)이는 비대화형 SSH 명령을 통해서도 작동하며 버그가 있거나 신뢰할 수 없는 utmp 메커니즘에 의존하지 않습니다.

답변3

who, whoami생각 last했지만 테스트에 사용할 수 있는 HPUX가 없습니다.

관련 정보