Linux: 서버에 대한 SSH 연결이 없더라도 $SSH_CONNECTION이 설정됩니다.

Linux: 서버에 대한 SSH 연결이 없더라도 $SSH_CONNECTION이 설정됩니다.

원격 서버가 있고 서버에 스크립트를 작성 중이며 SSH를 통해 서버에 접속할 때만 트리거되기를 원합니다. 나는 이 목적을 사용 $SSH_CONNECTION하고 $SSH_TTY달성하려고 생각했습니다 . SSH를 사용하지 않고 대신 VNC 클라이언트를 사용하여 서버에 들어갈 때(내 서버에서 vnc가 실행 중임) VNC에서 생성된 터미널에는 여전히 이 두 가지 환경 변수가 설정되어 있고 $SSH_CONNECTION두 경우 모두 동일한 값을 가짐을 발견했습니다. . 추가로 필터링하여 상위 프로세스가 sshd인지 확인하는 해결 방법을 찾았 ps -o comm= -p $PPID지만 변수가 설정된 이유를 알고 싶습니다.

답변1

SSH 변수를 설정하는 이유는 무엇입니까?

이러한 변수는 VNC 연결이 SSH 연결을 통해 터널링되기 때문에 설정될 가능성이 높습니다. 이에 대한 타당한 이유가 있습니다. VNC 사용법RFB 프로토콜어느안전하지 않음. SSH를 통해 VNC 터널을 설정하면 보안이 향상됩니다.

SSH_CONNECTION 변수가 동일한 이유는 무엇입니까?

SSH_CONNECTION 변수는 (1) 클라이언트 IP 주소, (2) 클라이언트 포트 번호, (3) 서버 IP 주소, (4) 서버 포트 번호의 네 가지 값으로 구성됩니다. 특정 서버와 통신하는 특정 클라이언트의 경우 한 세션에서 다음 세션으로 변경될 수 있는 유일한 것은 클라이언트 포트 번호입니다. 변경 여부는 상황에 따라 다릅니다. 예를 들어 SSH 명령을 내릴 수 있습니다.기존 연결 재사용. 이는 속도를 위해 수행됩니다. 그렇다면 여러 연결이 모두 하나의 포트를 공유할 수 있습니다.

관련 정보