원격 호스트에서 SSH 명령을 실행할 수 없는 이유는 무엇입니까?

원격 호스트에서 SSH 명령을 실행할 수 없는 이유는 무엇입니까?

점퍼박스를 통해 원격 호스트에 접속하고 있습니다. 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 할당을 강제합니다.

인용하다:

SSH 매뉴얼 페이지

의사 TTY 할당이란 무엇입니까?

관련 정보