로그인 후 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.