iterm2에서 ssh 후 에코 명령 트리거


1

"ssh somehost"다음에 다음 명령을 트리거하려고합니다. export PROMPT_COMMAND='echo -ne "\033]0;$HOSTNAME\007"'

아무것도 작동하지 않는 것 같습니다, 어떤 제안?


아무것도 작동하지 않는 것 같습니까? 지금까지 뭐 해봤 어?
— scai

글쎄, 나는이 트리거를 프로파일에 가지고있다 : imgur.com/2Zu74my 쉘 에코 테스트에서 실행할 때 명령이 트리거되지 않습니다.
— Elad Kuzy

유닉스 시스템을 사용하는 경우에 연결 한 후 ssh root@MachineB 'bash -s' < local_script.sh컨텐츠를 실행 하도록 실행할 수 있습니다 . local_script.shMachineB
— pzkpfw

답변:


0

나는 그것을 할 수 있다고 생각하지 않습니다.

우선 나는 당신의 명령을 다시 써야했습니다. 비록 이것이 당신이 얻고 자하는 것이 달성 될 수 없다는 사실 (나중에 보라)에 의해 무효화되지만, 그렇게하는 방법은 어느 정도 흥미롭고 일반적이므로, 나는 그것을 논의 할 것입니다. 나는 당신의 명령을

  ssh me@remote 'COLOR=("echo" "-ne" "\"\\033[48;5;95;38;5;214m\$HOSTNAME\033[0m\""); export PROMPT_COMMAND=${COLOR[@]}'

그 이유는 로컬 쉘이 $HOSTANME그 local값 으로 대체하는 것을 막을 필요가 있기 때문에 원격 서버에 전달하는 것은 작은 따옴표로 묶어야합니다 '. 이것이 작동 하려면 명령 내부에 작은 따옴표 가 없어야 하므로 원격으로 실행되도록 명령에 작은 따옴표가 나타나지 않도록 다시 작성해야했습니다. 나는 이것을 배열로 관리했다 COLOR. 명령

COLOR=("echo" "-ne" "\"\\033[48;5;95;38;5;214m\$HOSTNAME\033[0m\"") export PROMPT_COMMAND=${COLOR[@]}  

현지에서 잘 작동합니다 (색상 선택은 내 것입니다).

ssh를 통해 환경 변수를 내보내는 방법에는 두 가지가 있습니다. 먼저, AcceptEnv서버 /etc/ssh/sshd_config파일 에서 변수 를 변경할 수 있습니다 : 그러나 수동 상태

수락

클라이언트가 보낸 환경 변수가 세션의 환경에 복사 될 것을 지정합니다 .

여기에서 강조는에없는 세션 : 전역 변화.

두 번째 방법은 PermitUserEnvironment변수를 사용하는 것입니다.

허가 사용자 환경

Specifies whether ~/.ssh/environment and environment= options in
 ~/.ssh/authorized_keys are processed by sshd.  The default is
 "no".  Enabling environment processing may enable users to bypass
 access restrictions in some configurations using mechanisms such
 as LD_PRELOAD.

보시다시피 , 원격 사용자가 전역 환경 변수를 변경할 수 없도록ssh 주의 하십시오 .


매우 유익하고 깊은 답변에 감사드립니다. 그러나 나는 단지 물건을 에코하려고합니다. 아주 기본적인 것조차 작동하지 않습니다. 예를 들면 : trigger-test action-Run Command ... Parameters-echo hi가 작동하지 않습니다.
— Elad Kuzy

@EladKuzy 작동하지 않는 명령에 대한 자세한 예를 들어 주시겠습니까? 당신이 시도한 정확한 명령입니다.
— MariusMatutiae

imgur.com/lkCPmkX를 추가 한 마지막 트리거를 확인하십시오 . 그런 다음 bash에서 echo "hi"를 입력하여 테스트합니다. 다른 트리거가 작동 중입니다. "명령 실행 ..."작업 유형만으로 인해 문제가 발생합니다.
— Elad Kuzy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.