`sh` доступ запрещен через ssh соединение
У меня есть сервер Ubuntu и клиент Windows XP под управлением Cygwin. Сервер ssh
находится в клиенте и пытается выполнить сценарий оболочки с некоторыми параметрами с помощью следующей команды:
ssh user@IP_ADDR 'sh /home/user/project/clientside 2 5 7 6 9 5 7 IP_ADDR'
где IP_ADDR
это IP-адрес клиента.
Однако при этом я получаю следующую ошибку:
Access is denied.
Думая, что это может быть ошибка прав доступа пользователя, я попытался запустить sh /home/user/project/clientside 2 5 7 6 9 5 7 IP_ADDR
на клиенте, на Cygwin, пока залогинен как user
,
Это работает как ожидалось.
Тогда я подумал, что это может быть ошибкой при входе в систему, который я использую, когда я ssh в клиент. Поэтому я выполнил это вместо:
ssh user@IP_ADDR 'whoami'
и вернулся user
,
Это случилось даже после того, как я chmod -R 777 /home/user/project
на клиенте, в Cygwin.
Для пинков я сел на Cygwin на клиенте и сделал ssh localhost
и выполняется вручную sh /home/user/project/clientside 2 5 7 6 9 5 7 IP_ADDR
,
Это сработало, как и ожидалось.
Тем не менее, когда я сделал ssh IP_ADDR
от Cygwin и сделал ssh localhost
и выполняется вручную sh /home/user/project/clientside 2 5 7 6 9 5 7 IP_ADDR
Я получаю то же самое Access is denied.
ошибка.
Почему это происходит? Как я могу это исправить?
Кстати, и сервер, и клиент имеют открытый ключ rsa друг друга для ssh без пароля
2 ответа
Проблема в том, как работают службы Windows.
Это решает проблему:
- Закрыть Cygwin
- Перейти к службам Windows (
services.msc
наRun Dialog
). - Остановить
CYGWIN sshd
оказание услуг - Двойной клик по
CYGWIN sshd
ввести свойства сервиса - Остановить службу
- Под
Log On
вкладка, убедитесь, чтоLog on as
установлен вLocal System account
а такжеAllow service to interact with desktop
проверено - Перезапустите сервис
- Перезагрузите Cygwin
- Иди за пивом
Ты можешь попробовать ssh IP_ADDR sh echo lalala
действительно, вы можете открыть терминал sh. если это не удается... вы знаете причину. Также было бы полезно дать нам образец /var/log/messages и /var/log/secure {или любого другого журнала, который, по вашему мнению, будет полезен}