Como instalar um servidor SSH no Windows

Esta dica te ajudará a instalar e a configurar um servidor SSH no Windows.


Como escolher seu software

Eu escolhi o servidor OpenSSH da Cygwin, por que a Cygwin mantém seus pacotes atualizados, o que é importante em termos de segurança. Além disso, o instalador Cygwin possibilita a atualização OpenSSH, OpenSSL e todas as bibliotecas, sem necessidade de reinstalação.

Qual é o sistema operacional necessário

Windows 2000, XP ou 2003. Esta instalação não pode ser feita no Windows 95/98/ME. Ela também funciona no XP Home (Edição Familiar).

Quais são as ferramentas utilizadas

OpenSSH (pela shell e o instalador Cygwin).


Antes de começar, se você tem medo de efetuar estas manipulações, utilize o servidor SSH Cygwin pré-embalado CopSSH: http://www.itefix.no/. Porém, saiba que este pacote é susceptível de interferir na Cygwin se ele já estiver presente, e ele lida apenas com os usuários locais.

Observação: a instalação de um servidor SSH no Windows não é totalmente segura. É seriamente desaconselhável instalar um servidor SSH como este no Windows, em uma máquina de produção. Se você precisa de um servidor SSH seguro, utilize o Unix, Linux ou BSD. É bem mais fiável, sem comparação (sem DLL de emulação de uma parte de um sistema operacional (cygwin.dll), nenhum mapeamento errado entre os direitos do Windows e do Unix, nenhum serviço executado com um usuário cujos direitos sejam dúbios, nenhum pseudo-shell Unix).

Nota do autor

Esta dica está bem detalhada. Se ela não funcionar é porque você deve, provavelmente, ter cometido um erro. 99% dos problemas são causados pela leitura apressada da dica. Leia bem as mensagens que aparecem na tela. Não continue a instalação, sem pensar, se um alerta de erro aparecer, resolva primeiro o problema.

Como instalar o Cygwin

Baixe o instalador Cygwin (setup.exe) do cygwin.com e execute-o:

Janela Choose installation type (Escolha o tipo de instalação): escolha Install from internet (Instalar pela internet);

Janela Choose Installation Directory (Escolha o diretório de instalação): deixe todos os valores padrão;

Janela Select Local Package directory (Selecione o diretório do Pacote local): deixe os valores padrão (os arquivos de ‘install cygwin’ serão colocados em um subdiretório do setup.exe);

Janela Selection connection type (Selecione o tipo de conexão): entre eventuais configurações do proxy, se você utilizar um;

Janela Choose Download Site(s) (Escolha site(s) de download): escolha um site de download próximo de sua casa. Por exemplo, no Brasil .BR ou, no pior dos casos, escolha os servidores dos países vizinhos.

Janela Select packages (Selecione pacotes), clique no botão View (Visualizar) para ver a lista dos pacotes.

Desça na lista para encontrar OpenSSH: The OpenSSH server and client programs (OpenSSH: o servidor OpenSSH e os programas do cliente) e clique na palavra Skip (Pular) para selecionar este pacote. A palavra Skip deve, então, ser substituída pela versão do OpenSSH (por exemplo 4.2p1-1). Outros pacotes serão selecionados automaticamente. Clique em Next (Avançar). O download vai começar (mais ou menos 17 MB serão baixados).

Janela Create icons (Criar ícones): clique em Finish (Concluir).

A instalação do Cygwin terminou.

Como configurar o servidor SSH

Como alterar o ambiente

Clique direito no desktop > Propriedades > Avançado > Variáveis do ambiente > Variáveis do sistema. Clique em Novo e entre a variável CYGWIN; valor ntsec tty. Selecione PATH na lista, clique em Editar e adicione
C:\Cygwin\bin
no fim do caminho.

Como criar grupos e usuários

Abra a janela Cygwin e crie os usuários e os grupos:

Users: mkpasswd -l > /etc/passwd;
Grupos: mkgroup -l > /etc/group.

Isto levará em conta os usuários e grupos do Windows e vai criá-los em arquivos Cygwin correspondentes:

O -l é um L MINÚSCULO e não o número 1;
Para utilizar os grupos/ usuários do domínio (em vez do local), substitua -l por -d;
Para adicionar um usuário preciso, utilize -u (ex: mkpasswd -u jose -l > /etc/passwd);
Controle bem o conteúdo dos arquivos passwd and group. Se estes arquivos estiverem vazios, o servidor SSH não funcionará;
Se um usuário E SEU GRUPO não forem declarados nestes dois arquivos, ele não poderá se conectar;
Se uma mensagem de erro aparecer no mkpasswd ou mkgroup, inútil continuar a instalação: resolva este problema, antes de continuar.

Execute
ssh-host-config –y
. Pode ser que ele peça uma senha para a criação de um usuário sshd_server (por exemplo, no Windows 2003). Ele é o usuário que será utilizado para fazer funcionar o serviço sshd.

Quando for pedido CYGWIN=, insira ntsec tty. Com isto será criado o serviço sshd no Windows. Ele aparecerá sob o nome CYGWIN sshd na lista dos serviços. Em princípio, ele será configurado para iniciar automaticamente, mas ele ainda não foi iniciado.

Como iniciar o serviço sshd e teste

Como iniciar o serviço

Utilize o comando
net start sshd cygrunsrv -S sshd
. Note que o serviço se iniciará automaticamente no próximo arranque do Windows; você não precisará mais digitar este comando.

Se o serviço não se iniciar, veja o conteúdo do arquivo
C:\cygwin\var\log\sshd.log
. De acordo com as instalações, você poderá fazer
chown system /etc/ssh*
e
chown system /var/empty
para que o serviço seja iniciado corretamente.

Como testar o serviço

Utilize o cliente SSH fornecido com o cygwin:
ssh monlogin@localhost
. Ou Putty (client SSH gratuito). Na primeira conexão, o cliente SSH vai, provavelmente, te pedir para confirmar a chave. A seguir, depois da senha, você deverá obter um shell. Você poderá ver a conexão, digitando
echo $SSH_CONNECTION
(Porta 22 = seu servidor SSH).

Como gerenciar usuários

Qualquer usuário indicado no /etc/passwd poderá se identificar no servidor SSH. Você poderá, então, limitar a lista dos usuários passíveis de se conectarem no servidor SSH, alterando o arquivo
C:\cygwin\etc\passwd
.

Observação: você deve deixar os usuários sshd e sshd_server. O servidor SSH precisa disso.

Como acessar os discos do Windows

Não se esqueça que no shell Cygwin, você pode acessar seus discos Windows, por exemplo: /cygdrive/c para acessar o C: (e, assim por diante, para os outros leitores).

Como utilizar o seu servidor SSH para transferir arquivos

Além do shell, é claro que você poderá utilizar o seu servidor SSH para a transferência segura de arquivos (scp/sftp). No Windows, podemos encontrar clientes scp/sftp gratuitos:

pscp/psftp;
WinSCP.

O servidor SSH também pode botar em um túnel qualquer protocolo baseado no TCP para você. Para ser mais preciso, é como uma porta-forwarding distant. Exemplo, para estabelecer um túnel :

Sua máquina -----> cliente ssh local (port 777) -----> servidor ssh (porta 22) ----> pop.free.fr (porta 110)

Entraríamos o seguinte comando:

ssh -L 777:pop.free.fr:110 meuLogin@mmeuServidorrSsh
.

Em seguida, basta conectar seu software de e-mail no localhost:777 em vez de pop.free.fr:110 : ssh estabelecerá um túnel, em direção ao pop.free.fr, porta 110. Assim, você poderá ler seus e-mails no localhost:777. Isto pode ser útil para atravessar redes que não são seguras (ex: tudo aquilo que existe entre sua máquina e o servidor ssh).

Como melhorar a segurança

Para completar esta instalação, é preciso ajustar os direitos de acesso aos arquivos do usuário, utilizado para executar o serviço sshd a fim de melhorar a segurança.

Pense em executar, de vez em quando, o instalador Cygwin para atualizar OpenSSH e OpenSSL. (pare o serviço antes de fazer esta atualização). Com isto, você se beneficiará de atualizações de segurança do OpenSSH e do OpenSSL.

Foto: © Microsoft.
Artigo original publicado por Carlos-vialfa. Tradução feita por pintuda. Última modificação: 11 de março de 2018 às 06:03 por pintuda.
Este documento, intitulado 'Como instalar um servidor SSH no Windows', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (https://br.ccm.net/) ao utilizar este artigo.
Conectividade limitada ou inexistente
Comandos IP relativos às redes no Windows