명령줄에서 정의된 제목으로 SSH 세션 열기

명령줄에서 정의된 제목으로 SSH 세션 열기

명령줄에서 퍼티를 실행하는 데 약간의 문제가 있습니다.-중논쟁. 이 문제에 대해 도움을 주시거나 알고 계신다면 더 좋은 방법을 제안해주세요 :)

명령("실행"에서):

putty -ssh user@machine -pw password -m C:\test.txt

"test.txt" 명령:

PROMPT_COMMAND='echo -ne "\033]0;'$( ifconfig | head -2 | tail -1 | awk '{print $2}')'\007"'

문제:
세션을 열었다가 바로 닫습니다.

무엇을 하려고 할까요: 정의된 제목을 사용하여 명령줄에서 SSH 세션을 엽니다.

감사해요.

답변1

나는 당신이 비슷한 것을 시도했다고 믿습니다이 답변. 하지만 문제는 거기에 제공된 샘플 명령이 서버의 파일에서 실행된다는 것입니다.

-m 스위치를 사용하여 실행할 명령으로 전달할 수 없습니다. PuTTY의 이 스위치흉내내는 것이다Linux 명령줄 SSH 클라이언트의 동작:

ssh user@foo command

user이런 식으로 ssh는 서버 에 로그를 기록 foo하고 그곳에서 실행 command한 후 종료됩니다. -m PuTTY를 사용하면 동일한 작업을 수행하는 것 같습니다.

나의 제안

원격 서버에서 스크립트를 준비하고 PuTTY를 다른 방식으로 구성하는 것입니다. 우선 로그인 후 실행하고 싶은 명령어가 포함된 파일을 생성해야 합니다..title

cat > ~/.title

그런 다음 필요한 내용을 입력하거나 복사하여 붙여넣고 나중에 Ctrl+D를 누르세요. 지금은 제목 설정을 테스트해 보겠습니다.

echo -ne "\033]0;PuTTY\007"

위의 내용을 터미널에서 직접 시도해 볼 수도 있습니다. PuTTY의 창 제목이 변경되지 않으면 배포판이 이미 설정되었을 가능성이 있습니다.기본 PROMPT_COMMAND 변수. 터미널에서 다음 명령을 실행하여 확인할 수 있습니다.

echo $PROMPT_COMMAND
unset PROMPT_COMMAND
echo -ne "\033]0;PuTTY test\007"

핵심은 PROMPT_COMMAND변수의 현재 값을 설정 해제하는 것입니다. 그런 다음 마지막 명령은 창 제목을 PuTTY test.

내 솔루션

나에게 맞는 방법은 PuTTY에서 세션을 준비하는 것입니다.GUI의 "원격 명령" 상자로 설정:

/bin/bash --rcfile ~/.title

이 세션의 이름(예: SessionName)을 제공하고 PuTTY 설정의 첫 번째 페이지에서 "저장된 세션" 목록 근처에 있는 "저장" 버튼을 누르십시오. :)

그런 다음 PuTTY를 시작하고 이 세션을 로드하도록 지시할 수 있습니다.

putty -load SessionName -l user -pw password

예, 안타깝지만 저장된 세션에 대한 "원격 명령" 상자에 해당하는 명령줄이 없습니다. 그렇기 때문에 이 모든 장애물을 넘어야 합니다 :(

TL, DR 버전

이 모든 단계를 올바르게 수행한다고 가정하면 모든 것이 잘 작동할 것입니다.

  • ~/.title원격 컴퓨터에 스크립트 만들기
  • Bash를 실행하는 원격 명령으로 세션을 준비합니다.~/.title
  • PuTTY에게 시작 시 준비된 세션을 로드하고 사용자 및 비밀번호를 지정하도록 지시

전문가의 팁

명령줄(및 가능하면 스크립트)에서 일반 텍스트로 비밀번호를 지정하는 대신 SSH 키를 사용하고 Windows 트레이에서 'Pageant'(PuTTY 인증 에이전트)를 실행하는 방법을 배워야 합니다.

답변2

지금은 테스트할 SSH가 없지만http://www.derkeiler.com/Newsgroups/comp.security.ssh/2012-04/msg00005.html "당신도 창을 계속 열어두고 싶다면 스크립트 끝에 sleep 10을 입력하고 10초 동안 기다리세요. 쉘을 사용하려면 exec /bin/bash마지막에 사용하세요. 샤이"

통찰력을 제공하는 두 개의 다른 링크.

PuTTY: 로그인 후 원격 명령을 실행하고 셸 실행을 유지합니다.

Linux에서 PuTTY 제목 표시줄에 표시되는 항목을 어떻게 선택합니까?

Barlop님이 추가함

다음은 퍼티를 사용하지 않고 cygwin에서 openssh를 사용합니다. a.a파일에는 프롬프트를 변경하는 ls 또는 명령이 포함될 수 있습니다. 지역적입니다.

$ ssh 127.0.0.1 "cat | bash" < a.a

관련, 제가 방금 게시한 답변을 참조하세요 -https://unix.stackexchange.com/questions/87405/how-can-i-execute-local-script-on-remote-machine-and-include-arguments/208952#208952

관련 정보