Как удалить / переустановить cygwin для использования sshd?

52488
prosseek

Я установил cygwin / sshd без хороших результатов. Я удалил каталог c: \ cygwin для переустановки. Я удалил пользователя sshd Administrator вручную.

Я переустановил Cygwin снова, затем запустил 'ssh-host-config -y'. Странно, он ничего не спрашивает о создании нового пользователя. И процедура действительно короткая.

$ ssh-host-config -y * Запрос: перезаписать существующий файл / etc / ssh_config? (да / нет) да  Информация: Создание файла по умолчанию / etc / ssh_config Запрос: перезаписать существующий файл / etc / sshd_config? (да / нет) да  Информация: Создание файла по умолчанию / etc / sshd_config  Информация: Разделение привилегий по умолчанию установлено в «да», начиная с OpenSSH 3.3.  Информация: Однако для этого требуется непривилегированная учетная запись с именем «sshd».  Информация: Для получения дополнительной информации о разделении привилегий прочитайте / usr / share / doc / openssh ME.privsep. * Запрос: следует ли использовать разделение привилегий? (да / нет) да *** Информация: Обновление файла / etc / sshd_config

*** Информация: Конфигурация хоста завершена. Повеселись!

Когда я запускаю 'cygrunsrv -S sshd', я получаю сообщение об ошибке. Msgstr "Ошибка 3269 в Win 32: служба не запущена из-за ошибки входа в систему". Это разумное сообщение, так как я удалил sshd как пользователь, и процедура переустановки снова ничего не сделала для этого.

Я вижу, что у меня что-то не так с удалением.

Q: Как я могу удалить вещь, связанную с sshd, чтобы я мог переустановить ее снова?

16
Если ничего не помогает: https://superuser.com/questions/167219/how-to-completely-uninstall-remove-cygwin-from-windows-7 ndemou 7 лет назад 0

3 ответа на вопрос

37
Kentgrav

Если sshd ранее был установлен в системе, перед запуском ssh-host-config необходимо выполнить следующую процедуру очистки:

# Remove sshd service cygrunsrv --stop sshd cygrunsrv --remove sshd  # Delete any sshd or related users (such as cyg_server) from /etc/passwd # (use your favorite editor)  # Delete any sshd or related users (such as cyg_server) from the system net user sshd /delete net user cyg_server /delete 
Обратите внимание, что, как и при установке sshd, оболочка cygwin должна запускаться от имени администратора. f.ardelian 9 лет назад 0
Для меня не было файла `/ etc / passwd`. Кроме этого, это сработало! John 9 лет назад 3
Вы сказали "# Удалить любого sshd или связанных пользователей (таких как cyg_server) из / etc / passwd" OK. Но затем вы сказали: «# Удалите всех sshd или связанных пользователей (таких как cyg_server) из системы». Это, кажется, повторяется. А потом вы сказали, что команды net user находятся под этой строкой. Но эти команды не удаляют пользователей из системы. Они удаляют сервисы. barlop 8 лет назад 0
С пользователями системы он обращается к пользователям вашего ПК с Windows. С пользователями / etc / passwd он ссылается на пользователей, определенных в этом файле для среды Cygwin Unix-y (если есть). «Эти команды» действительно удаляют пользователей: https://technet.microsoft.com/en-us/library/cc771865(v=ws.11).aspx ndemou 7 лет назад 0
4
prosseek

Мне пришлось сделать три шага, чтобы его переустановить.

  • удалить LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ services \ sshd
  • запустите 'sc delete sshd'
  • перезагружать

Проблема в том, что я не могу войти в Cygwin с Mac, и именно поэтому я попытался переустановить Cygwin.

Я сделал еще одну ветку об этой проблеме. -> Я не могу войти в cygwin / ssh с Mac

Я нашел мой в ControlSet002 после быстрого поиска ключей, соответствующих "sshd" ndemou 7 лет назад 0
1
barlop

Looking at this link

https://www.cygwin.com/ml/cygwin/2014-03/msg00315.html

somebody's suggestion from the above link, seems to be a great checklist, exhaustive, no shortcuts and quick, and IIRC it worked for me.

Remove all files related to ssh from /etc.
Remove /var/empty.
Remove the ssh logs from /var/log.
Remove the sshd and cyg_server accounts from your SAM. Drop both from /etc/passwd.
Remove the sshd service. Start over.

Note- Where it says "start over", that might be american talk for restart, in this case, windows. Where it says to remove a service, you may need or want to stop the service before removing it. It may be that you don't need a restart, though you may. (so you could just only restart if it still didn't work). And where it says "your SAM" that means where it stores windows users - they're shown in 'computer management' - cygwin ssh adds users there, I see cyg_server and sshd users there, you can delete them from gui or command line. And re stopping and deleting a service, there are many commands that can. cygrunsrv, sc, net, and of those, i've not seen an advantage with cygrunsrv. and this jay guy thinks sc is more reliable at stopping or deleting them, that may be so. Other answers have you covered re commands to stop and remove a service.