원격 명령 실행

원격 명령 실행
  1. 연결 중인 파일 시스템의 .bashrc를 편집할 수 없습니다.

  2. ~/.ssh/config이 파일을 사용해야 해요

이것은 내 현재 구성입니다.

Host my-ssh
HostName <ip>
User <user>
IdentityFile <file location>
Compression yes
RemoteCommand cd <path to folder>

내가 실행하면 ssh my-ssh아무 일도 일어나지 않습니다. 연결이 자동으로 종료되는 것 같습니다. RemoteCommand선을 제거하면 문제없이 연결됩니다.

서버 구성에 문제가 있나요? EC2 인스턴스, CentOS 또는 RHEL이고 bash가 셸입니다.

답변1

원격 명령이 지정된 경우 원격 명령이 종료된 후 SSH 연결이 즉시 닫힙니다. 명령은 cd거의 즉시 종료됩니다.

원하는 것을 수행하는 일반적인 방법은 다음과 같습니다.

RemoteCommand cd /some/path && bash

("bash"를 원하는 쉘로 바꾸십시오). 이는 경로로 CD를 이동한 다음 CD 작업이 성공하면 하위 쉘을 호출합니다. 서브쉘이 종료되면 SSH 연결이 닫힙니다.

또한 ssh가 세션에 PTY를 할당하도록 강제해야 합니다.

RequestTTY yes

이렇게 하지 않으면 ssh는 기본적으로 요청하지 않으며 비대화형 셸 세션을 받게 됩니다. 명령 프롬프트가 표시되지 않는다는 점은 주목할 가치가 있습니다.

답변2

하나를 지정하면 RemoteCommand다음과 같습니다.

ssh user@host <command>

ssh호스트에 연결하고 명령을 실행한 후 종료하면 명령의 종료 상태가 로 반환 됩니다 ssh.

매뉴얼 페이지에서:

명령이 지정되면 로그인 쉘이 아닌 원격 호스트에서 실행됩니다.

따라서 호스트에 로그인하고 디렉터리를 변경한 다음 ssh로그아웃합니다. 나는 이것이 당신이 원하는 것이라고 생각합니다. 원격 명령은 비대화형이며 원격 컴퓨터에서 특정 명령을 실행합니다.

답변3

실행해 보십시오 ssh -t my-ssh. ~/.ssh/config의 구성에서 생략된 의사 터미널 할당을 강제해야 할 수도 있습니다.

관련 정보