사용자가 쉘 스크립트에서 SSH를 사용하고 있다는 것을 알고 있습니까?

사용자가 쉘 스크립트에서 SSH를 사용하고 있다는 것을 알고 있습니까?

사용자가 물리적으로 컴퓨터를 사용하는 경우 한 가지 작업을 수행하고 사용자가 SSH를 통해 로그인한 경우 한 가지 작업을 수행하고 싶은 쉘 스크립트가 있습니다.

그렇게 하려면 어떻게 해야 할까요?

좀 더 구체적으로 말하자면, 내 일반 컴퓨터는 OS X이고 거기서는 OS X 그래픽 편집기(BBEdit)를 내 EDITOR로 사용하고 싶습니다. 그러나 넷북에서 Mac에 SSH로 연결하는 경우 vim을 사용하고 싶습니다. Mac에 대한 그래픽 연결이 없습니다.

감사해요!

답변1

SSH_CONNECTION, SSH_TTY 또는 DISPLAY 환경 변수를 사용할 수 있어야 합니다.

보다:http://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man1/ssh.1.html

 SSH_CONNECTION        Identifies the client and server ends of the connection.  The variable contains
                       four space-separated values: client IP address, client port number, server IP
                       address, and server port number.

편집: SSH_CLIENT도 옵션이지만 매뉴얼 페이지에는 표시되지 않습니다.

답변2

env로컬로 로그인했을 때와 SSH를 통해 로그인했을 때를 비교하세요 .

SSH_CONNECTION예를 들어 SSH를 통해 로그인할 때만 정의되는 가 SSH_CLIENT있습니다 .SSH_TTY

답변3

나는 /var/run/utmpx("man utmpx" 참조)에 이 정보가 있다고 생각합니다. "who"를 실행하면 who 명령을 통해 원격 노드에서 연결되었는지 여부를 알 수 있습니다(어디에서 연결했는지도 알 수 있음).

따라서 언제든지 who 명령을 사용하고 출력을 마사지하여 이를 확인할 수 있습니다.

참고: 위의 답변(SSH_CONNECTION 사용에 대한)이 더 나은 솔루션이라고 생각합니다.

관련 정보