Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Quem precisa de um Mac?
Por pg
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Autenticação por desafio e resposta no SSH
Linux user
elgio
27/07/2009
Atuando sobre o protocolo SSL, o Secure SHell permite logar-se em uma máquina e executar comandos, em uma versão segura do antigo telnet. Este artigo não ensinará a instalar o SSH, mas sim a usar alguns recursos especiais, particularmente o do login por desafio e resposta (que usa uma chave pública e privada). Porém não apenas usar, mas explicar como funciona nos bastidores.
Por: Elgio Schlemer | Blog: http://gravatai.ulbra.tche.br/~elgio
[ Hits: 92032 ]
Conceito: 10.0   11 voto(s)11 voto(s)11 voto(s)11 voto(s)11 voto(s) + quero dar nota ao artigo

Introdução

Acredito que o SSH não precise ser apresentado e tampouco detalhes de sua instalação. Até porque em praticamente todas as instalações ele já vem instalado por padrão, seja o cliente ssh ou o servidor. Em algumas o servidor precisa ser explicitamente instalado, como é o caso do Ubuntu. Mas não se apresse, é provável que você não precise de um servidor SSH em seu console, já que este é um recurso desejável justamente em servidores.

O SSH funciona sobre o protocolo SSL, da mesma forma que o HTTPS. Como o uso do SSH é feita por administradores e não por usuários leigos, é extremamente incomum o uso de certificados digitais neste caso. Afinal um administrador de redes experiente não irá cair na pegadinha do ataque do homem do meio (onde uma outra máquina se faz passar pelo teu servidor).

Durante o primeiro acesso seria prudente que o cliente verificasse se realmente é o servidor. Observe no exemplo a seguir as mensagens gerados pelo servidor no primeiro acesso:

$ ssh elgio@10.2.3.4
The authenticity of host '10.2.3.4 (10.2.3.4)' can't be established.

RSA key fingerprint is ff:7b:35:74:cd:4c:59:0b:4b:b5:cf:fe:eb:f4:ec:7a.

Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.2.3.4,10.2.3.4' (RSA) to the list of known hosts.

Observe que ele lhe pede que confirme que este é mesmo o servidor. Neste ponto, se tiver certeza (e pode verificar o fingerprint), ao digitar "yes" a chave do servidor será armazenada em ~/.ssh/know_hosts.

A partir deste momento, nenhuma outra mensagem de aviso ocorrerá, salvo se o servidor for reinstalado ou se estiver mesmo sobre um ataque do homem do meio. Mas aí a mensagem será de recusar a conexão.

Meu objetivo não é exatamente descrever o SSH em si, mas sim alguns recursos pouco usados do mesmo. Um deles é o login por desafio/resposta usando uma chave pública e privada.

Próxima página >>




Páginas do artigo

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por ilsahec em 27/07/2009 - 16:53h:

Esclarecedor. Muito bom.

[2] Comentário enviado por cesar em 27/07/2009 - 17:04h:

Boa elgio,

[]'s

[3] Comentário enviado por LisandroGuerra em 28/07/2009 - 08:07h:

Muito interessante e em linguagem acessível.

[4] Comentário enviado por renato.leite em 28/07/2009 - 17:43h:

Muito bom, Parabéns.

[5] Comentário enviado por ghodoy em 29/07/2009 - 09:33h:

Execelente artigo..muito esclaredor

[6] Comentário enviado por elgio em 31/07/2009 - 09:58h:

O que pode ser considerado uma continuação deste artigo:
http://www.vivaolinux.com.br/artigo/Tuneis-cifrados-com-SSH/


[7] Comentário enviado por mda_deb em 31/07/2009 - 21:01h:

Parabéns elgio, mais um artigo de qualidade.



[8] Comentário enviado por rafaelalmeida em 02/09/2009 - 10:35h:

Muito bom artigo!
Só uma dúvida, após logar com a minha frase, estarei no home ou com os privilégios de qual usuário? O usuário que eu estava logado quando criei a chave?

[9] Comentário enviado por ikichl em 23/09/2009 - 09:22h:

Bom dia
estou com um grande problema aqui tenho um sistema em php que faz conexoes
automaticas atravez e chave de seguranca, instalada na maquina remota, porem cada
nova conexao ele pede a confirmacao antes e conectar a primeira vez:

Are you sure you want to continue connecting (yes/no)?

ja tentei diversos meio para auto aceitar a conexao, mas sempre sem sucesso
echo -e "yes" | ssh root@200.175.121.18


[10] Comentário enviado por edinhow em 06/11/2009 - 07:50h:

Artigo muito bom! Parabéns!




[11] Comentário enviado por sfrique em 01/01/2010 - 20:12h:

Artigo muito bom, mas para copiar a chave nao seria melhor usar o ssh-copy-id ?

Segue o comando:

$ssh-copy-id -i ~/.ssh/id_dsa.pub login@servidor

Basta o sftp estar habilitado no servidor!

Funciona com a chave rsa, então acho que deve funcionar com a dsa tambem!

Vlw!



[12] Comentário enviado por elgio em 01/01/2010 - 20:38h:

Henrique:

SIM, pode ser usado ssh-copy-id sim.

Mas observe que o ssh-copy-id não passa de um script SHELL :-O

E bem pequeno, alias. Bem simples de entender. Tirando a parte de testes se o usuário passou o que precisava e se a chave existe, etc, etc, a cópia é simplesmente isto:

{ eval "$GET_ID" ; } | ssh $1 "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys" || exit 1

Sendo que a variável GET_ID foi previamente preenchida com a chave.

Não precisa, neste caso, do SFTP. Ele faz usando o ssh mesmo.

Boa dia. Valeu.

E bem vindo ao Viva o Linux!

[13] Comentário enviado por anonymous em 12/03/2010 - 13:59h:

EXCELENTE ARTIGO!!!

[14] Comentário enviado por aline.abreu em 15/10/2010 - 14:38h:

Elgio,

Gostei muito do seu artigo!
Só me confirma uma coisa: Pra cada máquina que eu usar, terei que ter um par de chaves ou posso usar a mesma para várias máquinas que eu uso?

Aline

[15] Comentário enviado por VagnerFonseca em 22/10/2010 - 10:50h:

Aline,

Respondendo sua pergunta, você pode usar sim a mesma chave pública para logar em várias máquinas diferentes, assim basta que o usuário que você estiver utilizando naquele momento esteja com a chave privada no seu diretório .ssh.

Elgio,

Muito bom artigo, continue assim.

[16] Comentário enviado por alexandrepina em 26/09/2011 - 23:50h:

Fantástico, parabéns elgio


[17] Comentário enviado por Thiago Andreotti em 26/12/2011 - 13:48h:

O site Preciso Disso está contratando um web developer senior (back end) com forte conhecimento em PHP em cake e outros frameworks. Além de participar do desenvolvimento da versão 2.0 do site (em andamento) o desenvolvedor terá que criar aplicativos de busca, vídeos e notícias para redes sociais.O candidato deve ter perfil empreendedor e vontade de crescer e se tornar sócio de uma empresa startup.
Salário de R$ 4-5 mil + VR + VT + participação nos lucros + ações da empresa a partir do segundo ano.
Envie o seu CV para thiago@precisodisso.com.br
Para trabalhar na região de Moema em São Paulo

[18] Comentário enviado por elgio em 26/12/2011 - 13:54h:

Caro Thiago.

Coloque seu anúncio neste forum: http://www.vivaolinux.com.br/comunidade/Classificados-de-empregos-Linux/forum/

Os moderadores do VOL terão maior prazer em colocar ele em destaque na página principal do VOL.

Coloque e me avise, ok?

Elgio

[19] Comentário enviado por removido em 12/01/2012 - 09:56h:

Simplesmente maravilhoso Elgio! Parabéns!

[20] Comentário enviado por marcoaw em 12/01/2012 - 14:49h:

muito bom !!!

[21] Comentário enviado por marcelo_v em 09/02/2012 - 12:22h:

Artigo perfeito, sempre as pessoas entendem melhor com alguns exemplos do cotidiano, para dps citar um exemplo pratico da apresentacao do assunto, e foi realmente isso q vc fez. Esta' de parabe'ns, continue assim!


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.