점퍼박스를 통해 원격 호스트에 접속하고 있습니다. SSH 셸을 통해 액세스하면 원격 호스트에 쉽게 액세스할 수 있습니다.
ssh remoteHost
Last login: Tue Feb 16 12:56:26 2016 from xx.xxx.xx.xx
remoteHost:user:~$ ls
<shows all the stuff>
그러나 SSH 명령줄 옵션을 통해 명령을 실행하려고 하면 항상 다음과 같은 메시지가 나타납니다.
ssh remoteHost ls
"ls" isn't allowed to be executed.
Killed by signal 1.
SSH 명령을 성공적으로 실행할 수 있습니다일부호스트지만 다른 사람은 아닙니다.
이것은 서버에서 구성할 수 있는 설정입니까(예: "원격 SSH 명령 허용" 등)?
FWIW, 시청했어요비밀번호 없이 SSH를 사용하여 원격 호스트에서 명령 사용을 활성화하는 방법은 무엇입니까?, 그러나 그 질문에 대한 유일한 대답이 그것을 나타내는 것처럼 보이기 때문에 내 문제는 인용과 관련이 없다고 확신합니다.
고쳐 쓰다:
원격 호스트에는 다음과 같은 내용을 포함하는authorized_keys2 파일이 있습니다.
ssh-rsa <encrypted stuff> jumpbox_user@jumpbox
ssh-rsa <encrypted stuff> jumpbox_user@mydesktop
내 ssh/.config 파일은 다음과 같습니다.
Host remoteHost
HostName remoteHost
User user
ProxyCommand ssh -W %h:%p jumpbox_user@jumpbox_host
ServerAliveInterval 60
답변1
이 옵션을 사용하여 ssh 라인을 실행 하고 -t
원격 명령이 ' 로 구분되어 있는지 확인하십시오. 이렇게 하면 ssh가 원격 호스트에서 명령을 실행하도록 지시하여 라인에서 오류가 더욱 방지됩니다.
ssh user@remoteHost -t 'ls'
참고: -t 옵션을 사용하면 실제로 SSH 터미널 열기, 명령 입력, STDOUT 출력 및 종료를 시뮬레이션하는 의사 터미널 할당이 활성화됩니다. 이는 수동으로 수행한다고 언급한 것과 정확히 같습니다.
SSH 매뉴얼 페이지에 따르면:
-t 의사 터미널 할당을 강제합니다. 이는 원격 컴퓨터에서 임의의 화면 기반 프로그램을 실행하는 데 사용할 수 있으며, 이는 예를 들어 메뉴 서비스를 구현할 때 유용합니다. 여러 -t 옵션은 ssh에 로컬 tty가 없더라도 tty 할당을 강제합니다.
인용하다: