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.