Come disinstallare / reinstallare cygwin per usare sshd?


17

Ho installato cygwin / sshd senza buoni risultati. Ho rimosso la directory c: \ cygwin per reinstallare. Ho rimosso l'utente amministratore sshd a mano.

Ho reinstallato nuovamente Cygwin, quindi ho eseguito "ssh-host-config -y". Stranamente, non si chiede nulla sulla creazione di un nuovo utente. E la procedura è davvero breve.

$ ssh-host-config -y
 * Query: sovrascrivi il file / etc / ssh_config esistente? (sì / no) sì
 Informazioni: creazione del file / etc / ssh_config predefinito
Query: sovrascrivere il file / etc / sshd_config esistente? (sì / no) sì
 Informazioni: creazione del file / etc / sshd_config predefinito
 Informazioni: la separazione dei privilegi è impostata su Sì per impostazione predefinita da OpenSSH 3.3.
 Informazioni: tuttavia, ciò richiede un account non privilegiato chiamato 'sshd'.
 Informazioni: per maggiori informazioni sulla separazione dei privilegi leggi / usr / share / doc / openssh
ME.privsep.
* Query: utilizzare la separazione dei privilegi? (sì / no) sì
*** Informazioni: aggiornamento del file / etc / sshd_config

*** Info: configurazione host terminata. Divertiti!

Quando ho eseguito "cygrunsrv -S sshd", ho ricevuto un errore. "Errore Win69 1069: il servizio non è stato avviato a causa di un errore di accesso". È un messaggio ragionevole, poiché ho eliminato sshd come utente e la procedura di reinstallazione non ha fatto nulla per quello.

Vedo che c'è qualcosa di sbagliato nella disinstallazione.

D: Come posso disinstallare perfettamente la cosa relativa a sshd in modo da poterla reinstallare di nuovo?


Se tutto il resto fallisce: superuser.com/questions/167219/…
ndemou

Risposte:


37

Se sshd è stato precedentemente installato sul sistema, è necessario eseguire la seguente procedura di pulizia prima di invocare 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

Si noti che, come quando è stato installato sshd, la shell cygwin deve essere eseguita come amministratore.
f.ardelian,

3
Non c'erano file /etc/passwdper me. A parte questo, ha funzionato!
Giovanni,

Hai detto "# Elimina qualsiasi utente sshd o correlato (come cyg_server) da / etc / passwd" OK. Ma poi hai detto "Cancella tutti gli utenti sshd o relaged (come cyg_server) dal sistema" Sembra che ti stia ripetendo. E poi hai detto che i comandi net user sotto quella linea. Ma quei comandi non cancellano gli utenti dal sistema. Eliminano i servizi.
barlop

Con gli utenti di sistema si riferisce agli utenti del tuo PC Windows. Con gli utenti / etc / passwd si riferisce agli utenti definiti all'interno di questo file per l'ambiente cyxwin Unix-y (se presente). "Quei comandi" eliminano gli utenti: technet.microsoft.com/en-us/library/cc771865(v=ws.11).aspx
ndemou

4

Ho dovuto fare tre passaggi per reinstallarlo.

  • elimina LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ services \ sshd
  • eseguire 'sc delete sshd'
  • riavvio

Il problema è che non riesco ad accedere a Cygwin dal Mac, motivo per cui ho provato a reinstallare Cygwin.

Ho fatto un altro thread su questo problema. -> Non riesco ad accedere a cygwin / ssh da Mac


Ho trovato il mio in ControlSet002 dopo una rapida ricerca di chiavi corrispondenti a "sshd"
ndemou,

1

Guardando questo link

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

il suggerimento di qualcuno dal link sopra, sembra essere una grande lista di controllo, esauriente, senza scorciatoie e veloce, e IIRC ha funzionato per me.

Rimuovere tutti i file relativi a ssh da / etc.
Rimuovi / var / vuoto.
Rimuovere i registri ssh da / var / log.
Rimuovere gli account sshd e cyg_server dal SAM. Elimina entrambi da / etc / passwd.
Rimuovere il servizio sshd. Ricominciare.

Nota: dove si dice "ricomincia", potrebbe trattarsi di un discorso americano per il riavvio, in questo caso Windows. Dove si dice per rimuovere un servizio, potrebbe essere necessario o si desidera interrompere il servizio prima di rimuoverlo. Potrebbe non essere necessario un riavvio, anche se potresti. (quindi potresti solo riavviare se non funzionava ancora). E dove dice "il tuo SAM" significa che memorizza gli utenti di Windows - sono mostrati in "gestione del computer" - cygwin ssh aggiunge utenti lì, vedo cyg_server e utenti sshd lì, puoi eliminarli dalla GUI o dalla riga di comando. E per quanto riguarda l'arresto e l'eliminazione di un servizio, ci sono molti comandi che possono. cygrunsrv, sc, net e di quelli, non ho visto alcun vantaggio con cygrunsrv. e questo ragazzo di ghiandaiapensa che sc sia più affidabile nel fermarli o cancellarli, potrebbe essere così. Altre risposte hanno coperto i comandi per arrestare e rimuovere un servizio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.