ssh: 로그인하기 전에 명령 실행

ssh: 로그인하기 전에 명령 실행

SSH를 통해 원격 컴퓨터에 로그인한 상태에서 로컬 명령을 실행하는 방법을 찾고 있습니다. (명령이 완료된 후에도 로그인 상태를 유지하고 싶습니다.) 즉, 명령줄에서 명령을 지정하고 싶습니다. 원격 컴퓨터에서 실행해야 하며 정상적으로 로그인한 것처럼 쉘을 가져와야 합니다.

/home예를 들어, 쉘을 얻기 전에 원격 시스템에 설치 하고 싶다고 가정해 보겠습니다 . 나는 이런 일을 할 것입니다 (잘 작동하지 않습니다)

ssh mymachine.example.com 'mount /home ; /bin/bash'

실제로 다음 두 명령을 하나로 압축하는 방법을 찾고 있습니다.

ssh mymachine.example.com 'mount /home'
ssh mymachine.example.com

이 작업을 수행하는 방법을 아는 사람이 있나요?

중요한: 원격 컴퓨터에서 실행할 명령을 저장하고 싶지 않습니다. 로컬에 저장해야 합니다(암호화된 집을 해독하기 위한 비밀번호가 포함되어 있을 수도 있습니다).

답변1

-t의사 터미널 할당을 강제하는 옵션을 찾고 있을 수 있습니다 ssh. 해당 옵션이 없으면 터미널을 원격 실행 프로그램의 표준 입력/출력/오류에 직접 연결할 수 있습니다. 따라서 명령은 다음과 같아야 합니다.

ssh -t mymachine.example.com 'mount /home ; /bin/bash'

답변2

나는 다른 접근법을 추천합니다:기본 연결 사용. 먼저 마스터 연결을 시작하여 설치를 수행한 다음 영원히 잠자기 상태로 유지한 다음 인증이 필요하지 않은 슬레이브 연결을 사용하므로 속도가 매우 빠릅니다.

ssh -M mymachine.example.com 'mount -o password=swordfish …; exec sleep 999999999'
ssh mymachine.example.com ls

답변3

ssh의 rc 파일을 사용할 수 있습니다.

문서~/.ssh/rc사용자의 홈페이지가 사용 가능해지기 전에 실행되므로 모든 것을 거기에 넣을 수 있습니다.

이러한 파일은 서버에 상주합니다.

국민들도움이 될 수도 있습니다.

관련 정보