일반적으로 ssh에 명령을 전달하면
ssh me@example.com 'some-command.sh'
비 대화식 세션이 발생하며 명령 (또는 스크립트 등)이 실행되는 즉시 ssh가 종료됩니다. 대화식 세션을 얻는 방법과 로컬 컴퓨터에서 지정한 명령을 실행하는 방법 예를 들어, 화면을 열고 특정 화면 세션을 다시 시작하고 싶습니다.
ssh me@example.com 'screen -r 12345'
그러나 "터미널에 연결해야합니다"라는 오류가 발생하여 허용되지 않습니다. 내가 추정하는 것은 본질적으로 "대화식 쉘에서이 명령을 호출해야 함"을 의미합니다.
또 다른 예로서, 나는 종종 일을 할 권리를 갖기 위해 공유 계정을 사용해야하는 많은 기계를 사용합니다 (예 : 나름 : 나쁜 생각이지만 나를 비난하지 마십시오. 방법) 및 일반적으로 기본 쉘로 ksh가 있습니다. 로그인하고 bash (또는 zsh)로 전환하고 내 계정의 .bash_profile (또는 .zshrc)을 제공하고 싶습니다. 내가 대화 형 SSH 세션을 확립 할 수 있다면 이것은 쉬운 것입니다 및 로그인시 실행하는 원격 컴퓨터에 명령을 전달합니다.
나는 게시 할 것이라는 매우 끔찍한 (그리고 테스트되지 않은) 솔루션을 가지고 있지만 누군가가 더 나은 방법을 알고 있기를 바랍니다.
업데이트 : 이것을 깨닫지 못한 사람들을 위해, 나는이 모든 것을 손으로 할 계획이 없으므로 대화 형 세션을 열고 수동으로 수행한다고 말하면 실제로 아무것도 해결되지 않습니다.
두 번째 업데이트 : 명확히하기 위해 다시 시도하십시오 : 서버에서 (임의적으로 프로그래밍 된) 서버에서 (임의의) 명령을 실행하려고하지만 해당 프로그램 명령에 의해 영향을받는 대화 형 세션이 열려 있습니다.
echo "command" | ssh user@remote_host