Ошибка шпатлевки: операция / bin / bash не разрешена при подключении к Cygwin sshd
при попытке подключиться к SSH серверу с помощью PuTTY, я получаю ошибку:
/bin/bash: Operation not permitted
и тогда я получаю сообщение со словами:
Connection closed by remote host
это начало происходить неожиданно сегодня, и я понятия не имею, почему, соединение SSH раньше работало нормально.
то, что вызывает эту ошибку, и есть ли способ это исправить?
изменить: сервер является Windows box, а не Linux, и он работает под управлением sshd Cygwin. Также я нашел этот пост, который, я думаю, может быть актуальным -https://cygwin.com/ml/cygwin/2016-03/msg00097.html
5 ответов
Я потратил много времени, пытаясь решить ту же проблему. Случайно наткнулся на решение вот тут:
https://cygwin.com/ml/cygwin/2015-08/msg00162.html
на сервере cygwin:
- Откройте Панель управления > Администрирование.
- Выбираем Локальная Политика Безопасности > Локальные Политики > Назначение Прав Пользователя.
- щелкните правой кнопкой мыши заменить маркер уровня процесса и выберите Безопасность или Свойства.
- Нажмите кнопку Добавить, чтобы добавить учетную запись, на которой запущен sshd. ( cyg_server в моем случае )
- gpupdate
- перезапустить службу sshd
теперь попробуйте подключиться по ssh ... Мне это удалось
У меня была эта проблема и решить ее.
изначально я следовал ответу от Константин Брызгалов и смог войти в систему с паролем,но не смог получить аутентификацию с открытым ключом. (Я создал локальную учетную запись администратора cyg_server вручную.)
на дальнейшее расследование, я читал на этой странице и он сказал, чтобы избежать наличия домена и локальной учетной записи. Я проверил, и у меня были оба; очевидно, кто-то еще моя организация работает на сервере cygwin и уже создала cyg_server в домене, который путается с моей локальной учетной записью.
Я удалил свою локальную учетную запись cyg_server, удалил службу sshd и переустановил, как описано на этой странице, и все работало отлично из коробки. Фишка в том, чтобы сказать "нет", используя существующую учетную запись cyg_server, и скажи СШ-хост-config, чтобы создать "учетную запись cyg_server1". Он создал локальную учетную запись и настроить все правильно. Конкретно:
- cygrunsrv --stop sshd
- cygrunsrv --удалить sshd
- панель Ctrl > учетные записи пользователей > менеджер учетных записей > (удалить локальную учетную запись cyg_server)
- помощи mkpasswd -Л -Д >в/etc/passwd с
- mkgroup -Л -Д >в/etc/группа
- ssh-host-config
- перезаписать = yes
- строгий = да
- в Cygwin = ntsec
- пользователей для запуска = cyg_server1
- password = {...}
проверка учетных записей пользователей вы увидите, что cyg_server1 действительно является локальной учетной записью, но имеет дополнительные настройки.
Спасибо Константин Брызгалов для указывая мне в правильном направлении, была точно такая же проблема.
более тщательное решение может GE найти здесь: https://cygwin.com/faq.html#faq.using.sshd-in-domain На самом деле существует 3 параметра политики, для которых необходимо настроить cyg_server:
- действовать как часть операционной системы (SeTcbPrivilege)
- создать объект token (SeCreateTokenPrivilege)
- заменить маркер уровня процесса (SeAssignPrimaryTokenPrivilege)
вот более прямой способ делать то, что говорят предыдущие сообщения от Константин брызгалов и Мун-Ди. Запустите терминал cygwin от имени администратора, а затем:
остановить запущенный sshd:
net stop sshd
дайте пользователю ssh необходимые привилегии:
editrights-A SeTcbPrivilege-u cyg_server
editrights -это SeAssignPrimaryTokenPrivilege -у cyg_server
editrights-A SeCreateTokenPrivilege-u cyg_server
перезапустите sshd:
чистый старт sshd