1

ОС: 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 я получаю следующий вывод:

The CYGWIN sshd service is starting.
The CYGWIN sshd service could not be started.

The service did not report an error.

More help is available by typing NET HELPMSG 3534.

Вот полный вывод установки:

AdminUser@ThisComputer ~
$ ssh-host-config

*** Info: Generating /etc/ssh_host_key
*** Info: Generating /etc/ssh_host_rsa_key
*** Info: Generating /etc/ssh_host_dsa_key
*** Info: Generating /etc/ssh_host_ecdsa_key
*** Info: Creating default /etc/ssh_config file
*** Info: Creating default /etc/sshd_config file
*** Info: Privilege separation is set to yes by default since OpenSSH 3.3.
*** Info: However, this requires a non-privileged account called 'sshd'.
*** Info: For more info on privilege separation read /usr/share/doc/openssh/README.privsep.
*** Query: Should privilege separation be used? (yes/no) yes
*** Info: Note that creating a new user requires that the current account have
*** Info: Administrator privileges.  Should this script attempt to create a
*** Query: new local account 'sshd'? (yes/no) yes
*** Info: Updating /etc/sshd_config file

*** Query: Do you want to install sshd as a service?
*** Query: (Say "no" if it is already installed as a service) (yes/no) yes
*** Query: Enter the value of CYGWIN for the daemon: []
*** Info: On Windows Server 2003, Windows Vista, and above, the
*** Info: SYSTEM account cannot setuid to other users -- a capability
*** Info: sshd requires.  You need to have or to create a privileged
*** Info: account.  This script will help you do so.

*** Info: You appear to be running Windows XP 64bit, Windows 2003 Server,
*** Info: or later.  On these systems, it's not possible to use the LocalSystem
*** Info: account for services that can change the user id without an
*** Info: explicit password (such as passwordless logins [e.g. public key
*** Info: authentication] via sshd).

*** Info: If you want to enable that functionality, it's required to create
*** Info: a new account with special privileges (unless a similar account
*** Info: already exists). This account is then used to run these special
*** Info: servers.

*** Info: Note that creating a new user requires that the current account
*** Info: have Administrator privileges itself.

*** Info: No privileged account could be found.

*** Info: This script plans to use 'cyg_server'.
*** Info: 'cyg_server' will only be used by registered services.
*** Query: Do you want to use a different name? (yes/no) no
*** Query: Create new privileged user account 'cyg_server'? (yes/no) yes
*** Info: Please enter a password for new user cyg_server.  Please be sure
*** Info: that this password matches the password rules given on your system.
*** Info: Entering no password will exit the configuration.
*** Query: Please enter the password:
*** Query: Reenter:

*** Info: User 'cyg_server' has been created with password '[CENSORED]'.
*** Info: If you change the password, please remember also to change the
*** Info: password for the installed services which use (or will soon use)
*** Info: the 'cyg_server' account.

*** Info: Also keep in mind that the user 'cyg_server' needs read permissions
*** Info: on all users' relevant files for the services running as 'cyg_server'.
*** Info: In particular, for the sshd server all users' .ssh/authorized_keys
*** Info: files must have appropriate permissions to allow public key
*** Info: authentication. (Re-)running ssh-user-config for each user will set
*** Info: these permissions correctly. [Similar restrictions apply, for
*** Info: instance, for .rhosts files if the rshd server is running, etc].


*** Info: The sshd service has been installed under the 'cyg_server'
*** Info: account.  To start the service now, call `net start sshd' or
*** Info: `cygrunsrv -S sshd'.  Otherwise, it will start automatically
*** Info: after the next reboot.

*** Info: Host configuration finished. Have fun!

AdminUser@ThisComputer ~
$ net start sshd
The CYGWIN sshd service is starting.
The CYGWIN sshd service could not be started.

The service did not report an error.

More help is available by typing 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 но в моем случае это не помогло.

3 ответа3

3

Попробуйте отключить разделение привилегий в /etc/sshd_config

1

Под Cygwin, /var/empty должен принадлежать пользователю, выполняющему sshd. (Если вы не отключите разделение привилегий!)

От полезного электронного письма к списку рассылки Cygwin в 2012 году от Corinna Vinschen

Обычно sshd проверяет, принадлежит ли /var /empty uid 0. В Cygwin, где обычно нет пользователя с uid 0, код был изменен, чтобы проверить, принадлежит ли /var /empty пользователю, выполняющему sshd. Итак, если вы запускаете sshd в командной строке, вы должны указать /var /empty для текущей учетной записи пользователя. То же самое относится и к ssh-связанным файлам в /etc. Сообщение об ошибке - это сообщение об ошибке vanilla upstream. Cygwin не изменил, чтобы сохранить связанный с Cygwin апстрим-патч небольшим.

0

В моем случае у меня был конфликт с другим сервисом. Я установил пробную версию Bitvise, чтобы попробовать хостинг SSH-сервера.

Когда я установил Cygwin OpenSSH, мне нужно было отключить службу Bitvise, чтобы можно было запускать Cygwin sshd.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .