Як видалити / перевстановити cygwin, щоб використовувати sshd?


17

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

Я знову встановив 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', я отримую помилку. "Помилка Win 32 1069: сервіс не запустився через помилку входу". Це розумне повідомлення, оскільки я видалив sshd як користувач, і процедура перевстановлення знову нічого не зробила для цього.

Я бачу, що у мене щось не було з видаленням.

Питання: Як я можу ідеально видалити пов'язану sshd річ, щоб я міг її знову встановити?


Якщо все інше не вдається: superuser.com/questions/167219/…
ndemou

Відповіді:


37

Якщо 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

3
Файлу /etc/passwdдля мене не було. Крім цього, це спрацювало!
Джон

Ви сказали, що "# Видалити будь-якого sshd або пов’язаних користувачів (наприклад, cyg_server) з / etc / passwd" Добре. Але тоді ви сказали "# Видаліть будь-яких sshd або пов'язаних користувачів (наприклад, cyg_server) із системи" Це, здається, повторюється. А потім ви сказали, що чистий користувач команд знаходиться під цим рядком. Але ці команди не видаляють користувачів із системи. Вони видаляють послуги.
барлоп

Із користувачами системи він посилається на користувачів вашого комп'ютера Windows. З користувачами / etc / passwd він посилається на користувачів, визначених у цьому файлі, для середовища cygwin Unix-y (якщо він є). «Ці команди» роблять видаляти користувачів: technet.microsoft.com/en-us/library/cc771865(v=ws.11).aspx
ndemou

4

Мені довелося зробити три кроки, щоб перевстановити його.

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

Проблема полягає в тому, що я не можу увійти в систему cygwin з Mac, саме тому я спробував заново встановити cygwin.

Я зробив ще одну нитку щодо цієї проблеми. -> Не можу увійти Cygwin / ssh з Mac


Я знайшов свою в ControlSet002 після швидкого пошуку ключів, що відповідають "sshd"
ndemou

1

Переглядаючи це посилання

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

пропозиція когось із наведеного вище посилання, здається, чудовий контрольний список, вичерпний, без ярликів і швидкого, і IIRC він працював на мене.

Видаліть усі файли, пов'язані з ssh, з / і т.д.
Видалити / var / порожній.
Видаліть журнали ssh з / var / log.
Видаліть акаунти sshd та cyg_server зі своєї SAM. Відкиньте обидві з / etc / passwd.
Видаліть службу sshd. Почати з початку.

Примітка. Там, де написано "почати спочатку", це може бути американська розмова про перезапуск, в цьому випадку Windows. Там, де написано, щоб видалити службу, вам може знадобитися або захочете зупинити її, перш ніж її видалити. Можливо, вам не потрібен перезапуск, хоча ви можете. (так що ви могли просто перезапустити лише якщо він все ще не працював). І там, де написано "ваш SAM", це означає, де він зберігає користувачів Windows - вони відображаються в "керуванні комп'ютером" - cygwin ssh додає користувачів туди, я бачу cyg_server та sshd користувачів, їх можна видалити з gui чи командного рядка. І знову зупинившись та видаливши послугу, є багато команд, які можуть. cygrunsrv, sc, net та з них, я не бачив переваги з cygrunsrv. і цей хлопець сойкивважає, що sc надійніше зупиняти або видаляти їх, це може бути так. Інші відповіді, чи ви охопили повторні команди для зупинки та видалення послуги.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.