ОС: Windows 7 x64
Cygwin: 1.7.15-1
OpenSSH: 6.0p1-1
Я пытаюсь установить SSH-сервер на Windows 7. Учебник, которому я следую, чтобы это сделать, находится здесь:http://www.howtogeek.com/howto/41560/how-to-get-ssh-command-line-access-to-windows-7-using-cygwin/
Проблема в том, что при выполнении net start sshd
команды я получаю следующий вывод:
Запускается служба CYGWIN sshd. Не удалось запустить службу CYGWIN sshd.Служба не сообщила об ошибке.
Дополнительную справку можно получить, набрав NET HELPMSG 3534.
Вот полный вывод установки:
AdminUser@ThisComputer ~ $ ssh-хост-config *** Информация: Генерация /etc/ssh_host_key *** Информация: Генерация /etc/ssh_host_rsa_key *** Информация: Генерация /etc/ssh_host_dsa_key *** Информация: Генерация /etc/ssh_host_ecdsa_key *** Информация: Создание файла /etc/ssh_config по умолчанию *** Информация: Создание файла /etc/sshd_config по умолчанию *** Информация: разделение привилегий по умолчанию установлено на «да», начиная с OpenSSH 3.3. *** Информация: Однако для этого требуется непривилегированная учетная запись под названием «sshd». *** Информация: Для получения дополнительной информации о разделении привилегий прочтите /usr/share/doc/openssh/README.privsep. *** Запрос: Следует ли использовать разделение привилегий? (да/нет) да *** Информация: Обратите внимание, что для создания нового пользователя требуется, чтобы текущая учетная запись была *** Информация: Права администратора. Если этот скрипт попытается создать *** Запрос: новая локальная учетная запись «sshd»? (да/нет) да *** Информация: Обновление файла /etc/sshd_config *** Запрос: Хотите ли вы установить sshd как службу? *** Запрос: (Скажите «нет», если он уже установлен как служба) (да/нет) да *** Запрос: Введите значение CYGWIN для демона: [] *** Информация: В Windows Server 2003, Windows Vista и выше *** Информация: учетная запись SYSTEM не может быть назначена другим пользователям — возможность *** Информация: sshd требует. Вам необходимо иметь или создать привилегированный *** Информация: аккаунт. Этот скрипт поможет вам это сделать. *** Информация: Судя по всему, вы используете Windows XP 64bit, Windows 2003 Server, *** Информация: или позже. На этих системах невозможно использовать LocalSystem *** Информация: учетная запись для служб, которые могут изменить идентификатор пользователя без *** Информация: явный пароль (например, вход без пароля [например, открытый ключ *** Информация: аутентификация через sshd). *** Информация: Если вы хотите включить эту функцию, необходимо создать *** Информация: новая учетная запись с особыми привилегиями (если аналогичная учетная запись не существует) *** Информация: уже существует). Эта учетная запись затем используется для запуска этих специальных *** Информация: серверы. *** Информация: Обратите внимание, что для создания нового пользователя требуется, чтобы текущая учетная запись *** Информация: иметь права администратора. *** Информация: Не удалось найти привилегированную учетную запись. *** Информация: Этот скрипт планирует использовать «cyg_server». *** Информация: «cyg_server» будет использоваться только зарегистрированными службами. *** Запрос: Хотите ли вы использовать другое имя? (да/нет) нет *** Запрос: Создать новую привилегированную учетную запись пользователя «cyg_server»? (да/нет) да *** Информация: Пожалуйста, введите пароль для нового пользователя cyg_server. Пожалуйста, убедитесь, что *** Информация: этот пароль соответствует правилам создания паролей, заданным в вашей системе. *** Информация: Если не ввести пароль, конфигурация будет прервана. *** Запрос: Введите пароль: *** Запрос: Повторите ввод: *** Информация: Пользователь «cyg_server» создан с паролем «[CENSORED]». *** Информация: Если вы меняете пароль, не забудьте также сменить *** Информация: пароль для установленных служб, которые используют (или скоро будут использовать) *** Информация: учетная запись «cyg_server». *** Информация: Также имейте в виду, что пользователю cyg_server необходимы права на чтение. *** Информация: обо всех соответствующих файлах пользователей для служб, работающих как «cyg_server». *** Информация: В частности, для сервера sshd все пользовательские .ssh/authorized_keys *** Информация: файлы должны иметь соответствующие разрешения для разрешения открытого ключа. *** Информация: аутентификация. (Повторный) запуск ssh-user-config для каждого пользователя установит *** Информация: эти разрешения корректны. [Аналогичные ограничения применяются для *** Информация: например, для файлов .rhosts, если запущен сервер rshd и т. д.]. *** Информация: Служба sshd установлена под 'cyg_server' *** Информация: аккаунт. Чтобы запустить службу сейчас, вызовите `net start sshd' или *** Информация: `cygrunsrv -S sshd'. В противном случае он запустится автоматически *** Информация: после следующей перезагрузки. *** Информация: Конфигурация хоста завершена. Приятного просмотра! AdminUser@ThisComputer ~ $ чистый старт sshd Запускается служба CYGWIN sshd. Не удалось запустить службу CYGWIN sshd. Служба не сообщила об ошибке. Дополнительную справку можно получить, набрав NET HELPMSG 3534.
Обратите внимание, что в строке *** Query: Enter the value of CYGWIN for the daemon: []
я ничего не ввел. В руководствах часто говорят использовать ntsec
или ntsec tty
здесь, но эти опции удалены из последней версии OpenSSH. Я все равно пробовал их использовать, и результат тот же.
Файл /var/log/sshd.log
пуст. Если я попробую просто запустить команду, /usr/sbin/sshd
то получу вывод /var/empty must be owned by root and not group or world-writable.
. Каталог /var/empty имеет следующие разрешения: drwxr-xr-x+ 1 cyg_server root 0 May 29 15:28 empty
. Поиски этой ошибки в Google не дали никаких рабочих исправлений. Один человек, кажется, решил ее с помощью команды, chown SYSTEM /var/empty
но в моем случае это не исправило ситуацию.
решение1
Попробуйте отключить разделение привилегий в/etc/sshd_config
решение2
Под Cygwin /var/empty
необходимо иметь владельцапользователем, запустившимsshd
. (Если вы не отключите разделение привилегий!)
Отполезное письмо в список рассылки Cygwin в 2012 году от Коринны Виншен
Обычно sshd проверяет, принадлежит ли /var/empty пользователю с uid 0. В Cygwin, где обычно нет пользователя с uid 0,код был изменен для проверки того, принадлежит ли /var/empty пользователю, запустившему sshd. Итак, если вы запускаете sshd в командной строке, вам нужно chown /var/empty на текущую учетную запись пользователя. То же самое касается файлов, связанных с ssh, в /etc. Сообщение об ошибке — это сообщение об ошибке vanilla upstream. Оно не было изменено для Cygwin, чтобы сохранить небольшой набор исправлений upstream, связанный с Cygwin.
решение3
В моем случае у меня был конфликт с другим сервисом. Я установил пробную версию Bitvise, чтобы попробовать хостинг SSH-сервера.
Когда я установил Cygwin OpenSSH, мне нужно было остановить службу Bitvise, чтобы иметь возможность запустить Cygwin sshd.