Como desinstalar / reinstalar o cygwin para usar o sshd?


17

Eu instalei o cygwin / sshd sem bons resultados. Eu removi o diretório c: \ cygwin para reinstalar. Eu removi o usuário sshd Administrator manualmente.

Reinstalei o cygwin novamente e execute o 'ssh-host-config -y'. Estranhamente, ele não pergunta nada sobre como criar um novo usuário. E o procedimento é realmente curto.

$ ssh-host-config -y
 * Consulta: Sobrescreve o arquivo / etc / ssh_config existente? (sim / não) sim
 Info: Criando o arquivo / etc / ssh_config padrão
Consulta: Substituir arquivo / etc / sshd_config existente? (sim / não) sim
 Info: Criando o arquivo / etc / sshd_config padrão
 Info: a separação de privilégios é configurada como yes por padrão desde o OpenSSH 3.3.
 Informação: No entanto, isso requer uma conta não privilegiada chamada 'sshd'.
 Info: Para obter mais informações sobre separação de privilégios, leia / usr / share / doc / openssh
ME.privsep.
* Consulta: a separação de privilégios deve ser usada? (sim / não) sim
*** Informações: Atualizando o arquivo / etc / sshd_config

*** Informações: configuração do host concluída. Diverta-se!

Quando executei 'cygrunsrv -S sshd', recebo um erro. "Erro 32 no Win 3269: O serviço não foi iniciado devido a falha no logon". É uma mensagem razoável, pois excluí o sshd como usuário, e o procedimento de reinstalação não fez nada para isso novamente.

Vejo que entendi algo errado com a desinstalação.

P: Como posso desinstalar perfeitamente o item relacionado ao sshd para poder reinstalá-lo novamente?


Respostas:


37

Se o sshd tiver sido instalado anteriormente no sistema, o seguinte procedimento de limpeza deverá ser executado antes de chamar o 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

Observe que, como quando o sshd foi instalado, o shell do cygwin deve ser executado como administrador.
precisa saber é

3
Não havia arquivo /etc/passwdpara mim. Fora isso, funcionou!
John

Você disse "# Exclua qualquer sshd ou usuários relacionados (como cyg_server) de / etc / passwd" OK. Mas então você disse "# Exclua qualquer usuário sshd ou denegrido (como cyg_server) do sistema" Isso parece estar se repetindo. E então você disse que o usuário net comanda abaixo dessa linha. Mas esses comandos não excluem usuários do sistema. Eles excluem os serviços.
barlop

Com os usuários do sistema, ele está se referindo aos usuários do seu PC com Windows. Com os usuários / etc / passwd, ele está se referindo aos usuários definidos neste arquivo para o ambiente cygwin Unix-y (se houver). "Esses comandos" excluem usuários: technet.microsoft.com/en-us/library/cc771865(v=ws.11).aspx
ndemou

4

Eu tive que fazer três etapas para reinstalá-lo.

  • excluir LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ services \ sshd
  • execute 'sc delete sshd'
  • reiniciar

O problema é que não consigo fazer o login no cygwin a partir do Mac, razão pela qual tentei reinstalar o cygwin.

Eu fiz outro tópico sobre esse problema. -> Não consigo entrar no cygwin / ssh no Mac


Eu encontrei o meu em ControlSet002 após uma busca rápida para teclas de correspondência "sshd"
ndemou

1

Olhando para este link

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

a sugestão de alguém no link acima, parece ser uma ótima lista de verificação, exaustiva, sem atalhos e rápida, e o IIRC funcionou para mim.

Remova todos os arquivos relacionados ao ssh de / etc.
Remova / var / vazio.
Remova os logs ssh de / var / log.
Remova as contas sshd e cyg_server do seu SAM. Solte ambos do / etc / passwd.
Remova o serviço sshd. Recomeçar.

Nota - Onde diz "começar de novo", pode ser uma conversa americana para reiniciar, neste caso, o Windows. Onde diz para remover um serviço, você pode precisar ou querer parar o serviço antes de removê-lo. Pode ser que você não precise reiniciar, embora precise. (para que você possa reiniciar apenas se ainda não funcionar). E onde diz "seu SAM", que significa onde ele armazena usuários do Windows - eles são mostrados em 'gerenciamento de computadores' - o cygwin ssh adiciona usuários lá, vejo usuários cyg_server e sshd lá, você pode excluí-los da GUI ou da linha de comando. E ao parar e excluir um serviço, existem muitos comandos que podem. cygrunsrv, sc, net, e desses, eu não vi uma vantagem com cygrunsrv. e esse cara gaioacha que sc é mais confiável em interrompê-los ou excluí-los, pode ser. Outras respostas você cobriu re comandos para parar e remover um serviço.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.