Jak odinstalować / ponownie zainstalować Cygwin, aby korzystać z sshd?

17

Zainstalowałem cygwin / sshd bez dobrych rezultatów. Usunąłem katalog c: \ cygwin, aby ponownie zainstalować. Ręcznie usunąłem administratora sshd Administrator.

Ponownie zainstalowałem cygwin, a następnie uruchom 'ssh-host-config -y'. O dziwo, nie pyta o tworzenie nowego użytkownika. A procedura jest naprawdę krótka.

$ ssh-host-config -y
 * Zapytanie: Zastąpić istniejący plik / etc / ssh_config? (tak / nie) tak
 Informacje: Tworzenie domyślnego pliku / etc / ssh_config
Pytanie: Zastąpić istniejący plik / etc / sshd_config? (tak / nie) tak
 Informacje: Tworzenie domyślnego pliku / etc / sshd_config
 Informacje: Separacja uprawnień jest domyślnie ustawiona na tak od OpenSSH 3.3.
 Informacje: wymaga to jednak konta nieuprzywilejowanego o nazwie „sshd”.
 Informacje: Aby uzyskać więcej informacji na temat rozdziału uprawnień, przeczytaj / usr / share / doc / openssh
ME.privsep.
* Pytanie: Czy należy stosować separację uprawnień? (tak / nie) tak
*** Informacje: Aktualizacja pliku / etc / sshd_config

*** Informacje: Konfiguracja hosta zakończona. Baw się dobrze!

Kiedy uruchomiłem „cygrunsrv -S sshd”, pojawia się błąd. „Błąd Win 32 1069: Usługa nie została uruchomiona z powodu błędu logowania”. To rozsądny komunikat, ponieważ usunąłem sshd jako użytkownik, a procedura ponownej instalacji nic więcej nie zrobiła.

Widzę, że wystąpił błąd podczas odinstalowywania.

P: Jak mogę idealnie odinstalować program związany z sshd, aby móc go ponownie zainstalować?

prosseek
źródło
Jeśli wszystko inne zawiedzie: superuser.com/questions/167219/…
ndemou

Odpowiedzi:

37

Jeśli sshd został wcześniej zainstalowany w systemie, przed wywołaniem ssh-host-config należy wykonać następującą procedurę czyszczenia:

# 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
Kentgrav
źródło
Zauważ, że podobnie jak podczas instalacji sshd, powłoka cygwin musi być uruchomiona jako Administrator.
f.ardelian
3
Nie było /etc/passwddla mnie pliku . Poza tym to zadziałało!
Jan
Powiedziałeś „# Usuń dowolnego sshd lub powiązanych użytkowników (takich jak serwer_gry) z / etc / passwd” OK. Ale potem powiedziałeś „# Usuń sshd lub related users (takich jak cyg_server) z systemu” To chyba się powtarza. A potem powiedziałeś, że polecenia użytkownika netto znajdują się poniżej tego wiersza. Ale te polecenia nie usuwają użytkowników z systemu. Usuwają usługi.
barlop
Z użytkownikami systemu odnosi się do użytkowników twojego komputera z systemem Windows. Z użytkownikami / etc / passwd odnosi się do użytkowników zdefiniowanych w tym pliku dla środowiska cygwin Unix-y (jeśli istnieje). „Te polecenia” usuwają użytkowników: technet.microsoft.com/en-us/library/cc771865(v=ws.11).aspx
ndemou
4

Musiałem zrobić trzy kroki, aby ponownie zainstalować.

  • usuń LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ services \ sshd
  • uruchom „sc delete sshd”
  • restart

Problem polega na tym, że nie mogę zalogować się do cygwina z komputera Mac, właśnie dlatego próbowałem ponownie zainstalować cygwin.

Zrobiłem kolejny wątek na temat tego problemu. -> Nie mogę zalogować się do cygwin / ssh z komputera Mac

prosseek
źródło
Znalazłem mój w ControlSet002 po szybkim wyszukiwaniu kluczy pasujących do „sshd”
ndemou
1

Patrząc na ten link

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

czyjaś sugestia z powyższego linku wydaje się być świetną listą kontrolną, wyczerpującą, bez skrótów i szybkich, a IIRC to dla mnie zadziałało.

Usuń wszystkie pliki związane z ssh z / etc.
Usuń / var / empty.
Usuń dzienniki ssh z / var / log.
Usuń konta sshd i cyg_server z SAM. Upuść oba z / etc / passwd.
Usuń usługę sshd. Zacząć od nowa.

Uwaga - Tam, gdzie jest napisane „zacznij od nowa”, może to być amerykańska rozmowa o ponownym uruchomieniu, w tym przypadku Windows. Tam, gdzie jest mowa o usunięciu usługi, możesz chcieć lub chcieć zatrzymać usługę przed jej usunięciem. Możliwe, że nie potrzebujesz restartu, chociaż możesz. (abyś mógł zrestartować się tylko, jeśli nadal nie działał). A tam, gdzie jest napisane „twój SAM”, co oznacza, gdzie przechowuje użytkowników systemu Windows - są pokazani w „zarządzaniu komputerem” - cygwin ssh dodaje tam użytkowników, widzę tam użytkowników cyg_server i sshd, możesz je usunąć z GUI lub wiersza poleceń. I ponownie zatrzymując i usuwając usługę, istnieje wiele poleceń, które mogą. cygrunsrv, sc, net, i tych, nie widziałem przewagi z cygrunsrv. i ten sójkauważa, że ​​sc jest bardziej niezawodny w zatrzymywaniu lub usuwaniu ich, może tak być. Inne odpowiedzi obejmowały ponowne polecenia, aby zatrzymać i usunąć usługę.

barlop
źródło