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



» Screenshot
» Login
Login:
Senha:

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

Esqueci minha senha



Artigo

Conexões SSH sem senha fácil e descomplicado
Linux user
fernandofat
26/01/2007
Utilizando chaves públicas e privadas é possível realizar conexões SSH sem o uso de senhas, é possível também a execução remota de comandos, o que facilita alguns processos de automatização. Vale lembrar que esta não é uma configuração totalmente segura, por isto devem ser adotadas medidas alternativas para melhorar a segurança.
Por: Fernando Ribeiro | Blog: http://www.vivaolinux.com.br/~fernandofat
[ Hits: 106339 ]
Conceito: 10.0   5 voto(s)5 voto(s)5 voto(s)5 voto(s)5 voto(s) + quero dar nota ao artigo

Chaves públicas/privadas, o que são e para que servem?

São um par de chaves digitas que juntas fazem uma verificação de autenticidade das informações.

Para maiores informações visite o link:
O par de chaves é gerado no cliente.

A chave Privada não deve ser divulgada em hipótese nenhuma e a chave Pública pode e deve ser divulgada.

Nota: Este procedimento é voltado inteiramente para conexões SSH (existem outras aplicações de chaves Públicas/Privadas).

Gerando o par de chaves no cliente

No computador cliente execute o seguinte comando:

# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key
(/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in
/root/.ssh/id_rsa.
Your public key has been saved in
/root/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

Quando perguntado para entrar com uma "passphrase", apenas tecle "Enter" duas vezes para que fique em branco, caso contrário esta frase precisará ser digitada posteriormente.

Agora as duas chaves foram geradas.

A chave Privada está em "/root/.ssh/id_rsa" e a Pública em "/root/.ssh/id_rsa.pub".

Próxima página >>




Páginas do artigo
   1. Chaves públicas/privadas, o que são e para que servem?
   2. Configurando o servidor
   3. Execução remota de comandos
   4. Considerações finais

Outros artigos deste autor

Leitura recomendada

Comentários
[1] Comentário enviado por thelinux em 26/01/2007 - 14:12h:

Parabéns pelo artigo. Bem útil.

[2] Comentário enviado por kyrme em 26/01/2007 - 14:16h:

Não posso fazer o processo ao contrário, gerar um par de chaves no servidor e então divulgar a pública?!

[3] Comentário enviado por dailson em 29/01/2007 - 10:52h:

Kyrme

Isso pode ser feito também!
Parabéns pelo artigo!

Dailson

[4] Comentário enviado por superrlp2 em 29/01/2007 - 20:59h:

Beleza de artigo...parabéns!

[5] Comentário enviado por cainf em 24/02/2007 - 23:53h:

Fiz exatamente todo o procedimento so que no meu Debian 3.1 não aparece esse arquivo authorized_keys aparece so o arquivo known_hosts
Falta algum outro pacote no meu caso ??
Obrigado a todos

[6] Comentário enviado por fernandofat em 26/02/2007 - 14:25h:

cainf,

Quando você executa o comando "cat /root/id_rsa.pub >> /root/.ssh/authorized_keys" ele deveria criar o arquivo ou se já existe inserir o conteúdo nele.

Se não está criando verifique se o caminho existe, em alguns casos o diretório ".ssh" não existe dentro do home do usuário então é preciso cria-lo.

[]'s

Fernando

[7] Comentário enviado por hendrigo em 17/04/2008 - 13:43h:

bom artigo. foi muito útil para mim.

[8] Comentário enviado por emerson.candido em 08/10/2008 - 17:02h:

Fernando,

Ja utilizo o OpenSSH em estações Windows XP e Windows 2000 Server e autenticação por chaves é feita sem problemas, porém realizei o mesmo procedimento no Windows 2003 Server e quando vou fazer a autenticação por chaves simplesmente ele fechou a conexão, já tentei de várias formas repetir o procedimento, mudei de máquina instalei um 2003 do zero e fiz o procedimento igual uma máquina Windows XP que funciona e nada.
Existe alguma particularidade de segurança no Windows 2003 Server que pode impedir esse tipo de autenticação?

[9] Comentário enviado por fernandofat em 10/10/2008 - 14:26h:

Emerson,

Já fiz algumas instalações no Windows Server 2003 e não encontrei problemas.

Você consegue se conectar usando o Putty com autenticação mesmo?

[]'s

Fernando

[10] Comentário enviado por emerson.candido em 12/10/2008 - 22:22h:

Fernando,

Eu consigo autenticar com senha tranquilamente, o problema é quando eu vou fazer a autenticação por chaves.

Ele simplesmente fecha a conexão como se a chave estivesse incorreta, mas não é exibido nenhuma mensagem de erro nem mesmo no event viewer e nenhuma pasta do próprio OpenSSH, tentei até olhar a pastar C:\Program Files\Openssh\var\log, porém não há nada de relevante lá.

Também tentei gerar novas chaves, pois inicialmente estava usando do tipo DSA, depois mudei para RSA, mas não mudou nada, gerei-as com o ssh-keygen e depois através do PuttyGen.

Abaixo segue o meu sshd_config, veja se você consegue achar algo errado:

# $OpenBSD: sshd_config,v 1.65 2003/08/28 12:54:34 markus Exp $

# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.

Port 22
#Protocol 2,1
Protocol 2
#ListenAddress 0.0.0.0
#ListenAddress ::

# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key

# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 768

# Logging
#obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes

# The following setting overrides permission checks on host key files
# and directories. For security reasons set this to "yes" when running
# NT/W2K, NTFS and CYGWIN=ntsec.
StrictModes no

#RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
AuthorizedKeysFile etc/authorized_keys

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts yes
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication no
PermitEmptyPasswords yes

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCreds yes

# Set this to 'yes' to enable PAM authentication (via challenge-response)
# and session processing. Depending on your PAM configuration, this may
# bypass the setting of 'PasswordAuthentication'
#UsePAM yes

#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
#PrintLastLog yes
#KeepAlive yes
#UseLogin no
UsePrivilegeSeparation no
#PermitUserEnvironment no
#Compression yes
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
#PidFile /var/run/sshd.pid
MaxStartups 10:30:60

# default banner path
Banner /etc/banner.txt

# override default of no subsystems
Subsystem sftp /usr/sbin/sftp-server


[11] Comentário enviado por brunosilva.ti em 01/06/2009 - 14:40h:

Parabens, funcionou perfeitamente!

[12] Comentário enviado por vlademiro em 10/07/2009 - 18:42h:

Parabens, funcionou. Seu artigo é muito util, claro e prático.

[13] Comentário enviado por gdtec em 27/01/2010 - 17:03h:

Muito bom artigo. Simples, prático e funcional. Obrigado!

[14] Comentário enviado por mirandamiranda em 09/02/2010 - 15:18h:

Eu tenho uma dúvida:
O comando # ssh-keygen -t rsa deve ser executado no cliente. OK
Mas e se o cliente for Windows, o comando é o mesmo? Como devo proceder?

[15] Comentário enviado por fernandofat em 09/02/2010 - 16:33h:

Miranda, veja a seção "Execução remota de comandos usando PuTTY". O PuTTY tem uma ferramenta para gerar esta chave.

[]'s

Fernando

[16] Comentário enviado por maneto em 12/03/2010 - 17:12h:

acabei de precisar disso, pois achei um tuto do howtoforge que me dizia para fazer
$ cat ~/.ssh/id_dsa.pub | ssh you@example.com "cat - >> ~/.ssh/authorized_keys"

como tava dando erro ao executar pelo cliente, tive que usar o scp e mexer no servidor mesmo

[17] Comentário enviado por throberth em 06/04/2010 - 18:26h:

parabens pelo artigo, ajudou muito mas agora surgiu algumas dificuldades:
-quando preciso acessar mais de uma maquina sem senha, do mesmo servidor de origem?
pois tenho um servidor que atualizada dados em vários servers assim o ssh sem senha me ajudaria pacas, tem alguma idéia como posso realizar isto?

[18] Comentário enviado por throberth em 06/04/2010 - 18:56h:

senhores peço perdão pela minha ignorância, a chave é a mesma para todos os demais servidores, é somente copia-la para os tais, agradeço.

[19] Comentário enviado por mcabral em 10/09/2010 - 10:35h:

Camarada ..!!!

Meus parabéns pelo artigo ... Funciona que é uma beleza ... estou usando para copiar dados de um servidor para outro.

Obrigado por estar ajudando
Marcelo Cabral

[20] Comentário enviado por Ze_Euros em 11/03/2011 - 10:09h:

Gente amiga.
Eu tenho um problema eu não tenho a senha do root porque eu sou administrador aplicacional portanto tenho outros privilegios
no servidor com posso ultrapassar esse dilema ? É possivel eu usar o meu usar outro user para guardar as senhas publicas ?


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.