Configurando OpenSSH no Windows Server 2003 para autenticação por chave (sem senha)

Neste artigo irei mostrar como configurar o OpenSSH no Windows Server 2003 para utilizar autenticação por chave ou "key authorization" possibilitando o acesso sem senha.

[ Hits: 51.755 ]

Por: Fernando Ribeiro em 12/09/2007 | Blog: http://www.vivaolinux.com.br/~fernandofat


Instalando o OpenSSH



Depois de fazer o download do OpenSSH for Windows, execute o setup de instalação, durante a instalação modifique o diretório onde o OpenSSH será instalado para um diretório sem espaços, por exemplo "C:\OpenSSH", recomendo também a instalação apenas do componente "Server" do OpenSSH para servidores.



Configurando o OpenSSH

Criando contas para o OpenSSH:

O OpenSSH utiliza um arquivo de usuários "passwd" e um arquivo de grupos "group", estes arquivos devem conter contas/grupos locais da máquina ou de domínio, porém é necessário criá-los antes de iniciar o serviço. Apenas os usuários criados dentro do arquivo "passwd" poderão logar pelo SSH.

Nota: a conta e/ou grupo devem existir no Windows.

Para criar contas e grupos utilize a seguinte sintaxe:

Nota: O mkpasswd e mkgroup se encontram no caminho "C:\OpenSSH\bin"

mkpasswd -l [-u <nomedousuario>] >> ..\etc\passwd

(adiciona nomedousuario para o passwd - usuário local)

mkpasswd -d [-u <nomedousuario>] >> ..\etc\passwd

(adiciona nomedousuario para o passwd - usuário de domínio)

mkgroup -l >> ..\etc\group (grupos locais)

mkgroup -d >> ..\etc\group (grupos de domínio)

Exemplo prático:

mkpasswd -d -u root >> ..\etc\passwd
mkgroup -d >> ..\etc\group


Neste momento o serviço SSH já está operacional para aceitar conexões SSH, mas a autenticação por chaves ainda não irá funcionar, para tal teremos que fazer algumas configurações específicas.

Configurando o home do usuário

Os usuários que logarem pelo OpenSSH deverão ter um diretório home, por padrão este diretório fica em "C:\Documents and Settings". Você pode utilizar este diretório mesmo, não tem problema, mas eu particularmente prefiro criar uma estrutura separada para fins de organização, melhor controle e até segurança.

Para isso, dentro do diretório "C:\OpenSSH", crie um diretório chamado "home" (C:\OpenSSH\home), dentro deste novo diretório home crie diretórios com o nome dos usuários que irão se logar pelo OpenSSH.

Crie também um diretório chamado ".ssh" dentro do home do usuário que irá ser utilizado na autenticação por chaves, este diretório será utilizado mais para frente.

Agora altere o local padrão do home do usuário atualizando a seguinte chave de registro do Windows:

"[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/home]"

Mude o valor da chave "native" de "C:\Documents and Settings" para "C:\OpenSSH\home".

Trocando o usuário que inicia o serviço do OpenSSH

Primeiramente é preciso colocar um usuário local ou de domínio e de preferência com direitos administrativos (apesar de não ser o mais seguro) para executar o serviço do OpenSSH ao invés da conta padrão do sistema. Isto é possível executando o "services.msc" e selecionando propriedades do serviço OpenSSH.



O usuário utilizado para executar o serviço do OpenSSH deve ser proprietário do arquivo "C:\OpenSSH\var\log\OpenSSHd.log". Este arquivo só existirá se o serviço foi iniciado corretamente ao menos uma vez independente da conta configurada para executá-lo.

Para configurar a conta proprietária do arquivo clique no arquivo mencionado acima com o botão direito e selecione "Segurança" depois "Avançado" e então "Proprietário", nesta aba inclua a conta que executará o OpenSSH como serviço ou selecione uma conta na lista, caso seja uma delas que executará o OpenSSH como serviço.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalando o OpenSSH
   3. Configurando o cliente e as chaves pública/privada
Outros artigos deste autor

Linux logando no Domínio NT

Conexões SSH sem senha fácil e descomplicado

Leitura recomendada

KeepAlive para conexão discada (ou não)

BigBashView, interface gráfica para o seu shell script

Processos

Impressora PDF via Samba para estações Windows

Minha caixa de ferramentas no GNU/Linux

  
Comentários
[1] Comentário enviado por lord_roxton em 12/09/2007 - 11:03h

Artigo muito interessante!

[2] Comentário enviado por sombriks em 13/09/2007 - 03:03h

kra, silverBullet!

as máquinas da minha rede tão todas ganhando um sshd (pra desligar aqueles clientes xatos, hahahahahaha!!!)

[3] Comentário enviado por fernandofat em 13/09/2007 - 15:04h

SilverBullet foi ótimo! huahauhauahu

Mas falando sério...

Caso alguém encontre problemas ao subir o serviço como um usuário local ou de dominio, experimente fazer o seguinte:

- Desfaça os passos da seção "Trocando o usuário que inicia o serviço do OpenSSH" do artigo
- Depois dê permissão de escrita e leitura no diretório "C:\OpenSSH" e seus subdiretórios para o usuário que irá rodar o serviço do SSHD
- Agora refaça os passos da seção "Trocando o usuário que inicia o serviço do OpenSSH" do artigo

[]'s

Fernando

[4] Comentário enviado por cadmec em 09/02/2010 - 16:51h

Olá Fernando,

Fiz como descrito. Mas quando tento logar usando o Putty, o sistema retorna:
Server refused our Key
Alves@10.0.0.100's password:

E quando coloco a senha que está no servidor para o usuáro Alves, ele diz - Acess denied.

Poderia me ajuda ai,

Abraços e Obrigado.
Alves

[5] Comentário enviado por rafaelalmeida em 31/05/2010 - 16:00h

Opa, blz Fernando?

Aqui não funciona... copiei várias chaves públicas de outros servidores para o arquivo authorized_keys do meu servidor windows, e ao tentar logar de um destes servidores no mesmoele pede senha. A intensão aqui é fazer o backup dos servidores linux em um servidor windows, inicialmente pensamos em rsync, mais para isto precisamos de ssh rodando sem senha, pode me ajudar??


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts