대화형 SSH를 사용하여 원격 호스트에서 명령 실행(조건부)

대화형 SSH를 사용하여 원격 호스트에서 명령 실행(조건부)

원격 호스트에 로그인할 때마다 현재 대화형 SSH 세션 내에서 명령을 자동으로 실행할 수 있기를 원합니다.

그것은 마치

ssh user@remotehost [run do.sh]

do.sh일부 관리 작업을 수행한 다음 screen세션 에 다시 연결할 위치입니다 (현재는 do.sh호스트에 로그인한 후 수동으로 실행합니다).

다른 컴퓨터에서 이 호스트에 로그인했기 때문에 추가하고 싶지 않으며 거기에서 로그인할 때 실행되는 .bashrc것을 원하지 않으므로 선택 사항이어야 합니다.do.sh

답변1

다음과 같이 시도해 볼 수 있습니다.

ssh server -t "do.sh; bash --login"

여기에 제안된 대로:https://serverfault.com/questions/167416/change-directory-automatically-on-ssh-login

또는 공식 매뉴얼 페이지에 설명된 대로 sshd_conf(또는 ~/.ssh/config)에서 "LocalCommand" 옵션을 사용해 볼 수 있습니다.http://unixhelp.ed.ac.uk/CGI/man-cgi?ssh+1

답변2

딜레마 1: OpenSSH가 사용된다고 가정하면 클라이언트는 ssh다음 환경 변수를 설정합니다.

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

따라서 이 정보를 사용하여 이해할 수 있습니다.당신의 연결이 어디서 오는지.

관련 정보