Почему я не могу выполнить команду SSH на удаленном хосте?

Почему я не могу выполнить команду SSH на удаленном хосте?

Я получаю доступ к удаленному хосту через jumpbox. Я могу легко получить доступ к удаленному хосту, если я получу доступ к нему через оболочку 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» или что-то подобное?

Кстати, я посмотрелКак включить использование команд на удаленном хосте по 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 принудительно выделяют tty, даже если у ssh нет локального tty.

Использованная литература:

Страница руководства SSH

Что такое псевдо-TTY-распределение?

Связанный контент