로그인 후 PuTTY에서 원격 명령을 실행하고 쉘을 계속 실행하는 방법은 무엇입니까?


34

내가하려고하는 일 : 명령 줄에서 PuTTY 세션을 시작하고 원격 컴퓨터와 cd제공된 디렉토리에 로그인하십시오 .

putty.exe -agent -ssh some.host

기본 로그인 이름 및 개인 키로 세션 및 로그인이 열립니다.

echo cd /some/remote/path/ > c:/stuff/cmd.txt
putty.exe -agent -ssh some.host -m 'c:/stuff/cmd.txt'

세션을 열고 로그인하고 명령을 실행하고 ( cd이 경우) 종료 합니다.

cd세션을 열고 로그인 하고 세션을 열린 상태로 유지하려면 어떻게합니까?

배경 : Windows에서 emacs를 사용하고 종종 tramp & plink를 사용하여 원격 Unix 컴퓨터에서 파일을 편집합니다. 해당 원격 컴퓨터에 대한 PuTTY 세션을 열고 해당 파일의 디렉토리에 chdir을 여는 핫키를 만들고 싶습니다. 이맥스 측면에서 큰 문제는 아니지만 PuTTY에 갇혀 있습니다.

답변:


32

무엇을 -m수행하는 대신 쉘의 명령 (들)을 시작하려면 SSH 서버에 지시 퍼티를 만드는 것이다. 따라서 명령이 완료되면 세션도 완료됩니다.

cd명령 후에 쉘을 실행하려면 다음과 같이 쉘을 명시 적으로 추가해야합니다 cmd.txt.

cd /my/path ; /bin/bash

또한 -m"nopty"/ 비 대화식 모드를 의미합니다. 대화식 쉘을 사용하려면 -t스위치 를 사용하여이를 대체해야합니다 .

putty.exe -ssh example.com -m "c:\path\cmd.txt" -t

또는 KiTTY 를 -cmd스위치 와 함께 사용 하면 원하는 작업을 수행하고 임시 파일이 필요하지 않습니다.


cmd.txt에 / bin / bash를 추가하여 시도했지만 작동하지 않습니다. 내가 이해하는 한, bash는 비 대화식 모드에서 시작하고 실행할 코드가 없으면 종료됩니다. 대화식 쉘을 시작하는 방법이 있습니까?
— Artyom V. Kireev

한편, 나는 mc를 시작하려고했습니다. :-)하지 않았고 일부 출력을 제공했습니다.Cannot get terminal settings: Invalid argument (22) TERM environment variable needs set.
— Artyom V. Kireev

여기에 지침을 주셔서 감사하지만, putty -m "myfile.sh" -t를 사용하여 tinycorelinux vm (/ bin / ash)에 연결 하는 데 문제가있는 것 같습니다 . 나는 다음과 같은 오류가 발생합니다 : i.imgur.com/QN5oRXC.png이 (내 스크립트로 시작 echo ".."항상 잘못된 문자 후 내 스크립트의 첫 번째 문자가 표시됩니다 그것
— 빈센트 드 스멧

내가 퍼티 프로파일에 구성 원격 명령을 사용하는 경우, 그것을 작동
— 빈센트 드 스멧

-1

emacs에서 시작하는 tramp 세션과 putty를 통해 실행되는 쉘 세션은 완전히 별개의 프로세스입니다.

emacs 구성 내에서 호스트 당 기본 디렉토리를 설정하는 방법이 있는지 확인하려면 tramp에 대한 구성 옵션을 확인하는 것이 좋습니다. 여기에 설명 된tramp-remote-path 대로 구성 옵션으로 시작할 수 있습니다 .

퍼티를 사용하여 연결을 설정 해야하는 경우 ssh 터널을 설정하고 emacs / tramp를 통해 연결하려고 할 수 있습니다.


이맥스와 트램프는 여기서 관련이 없습니다. 그것은 emacs에서 파일을 편집하는 것이 아니라 셸을 열어 해당 파일로 다른 작업을 수행하는 것입니다 (예 : 스크립트 실행). 나는 "퍼티를 시작하고, 당신을 선택하고, 원하는 길을 따라 가라"피곤하고 그것을 자동화하고 싶다.
— Artyom V. Kireev
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.