SSH sem senha para acesso remoto (utilizando chave pub/priv)

?? possível que você efetue o acesso entre seus servidores sem fornecer senhas. Existem duas maneiras de realizar isso, uma é utilizando Kerberos e criando uma rede Single Sign-On e a outra é utilizando chaves pública/privada nos servidores. Neste post abordo a segunda solução, e quem sabe num futuro não muito distante eu descreva a segunda :)

Na maquina cliente (a maquina de onde partirá o acesso a um servidor sem pedir pela senha) crie um par de chaves publica/privada com o comando:

neto@servidorcliente# ssh-keygen -b 4096 -t rsa

onde:

  • -b informa o tamanho da chave em bits (1024, 2048, 4096)
  • -t informa o tipo da chave (RSA/DSA)

após gerar a chave, é solicitado o diretório onde será armazenado a chave (/home/neto/.ssh/id.rsa) aceite o padrão. Em seguida será solicitado a senha e a confirmação da senha. Como a intenção é logar sem auntenticação, deixe essa senha em branco.

Copie o conteúdo do arquivo /home/neto/.ssh/id.rsa.pub do servidor cliente para o arquivo /home/neto/.ssh/authorized_keys no sevidor, utilize os comandos:

# cd /home/neto/.ssh
# scp id_rsa.pub neto@servidor:id_rsa-cliente
# ssh neto@servidor
# cat id_rsa-cliente >> .ssh/authorized_keys

Agora você poderá efetuar logoff e ao logar novamente com o usuário, a senha não será mais solicitada.

Caso queira utilizar o usuário root, não esqueça de liberar no arquivo /etc/ssh/sshd_config o acesso via ssh (PermitRootLogin yes)

Posts relacionados:

12 thoughts on “SSH sem senha para acesso remoto (utilizando chave pub/priv)

  1. o comando correto não seria:
    scp id_rsa.pub neto@servidor:id_rsa-cliente
    já que o arquivo deve estar no diretório home do usuário neto?

  2. ?? isso mesmo André, obrigado pela correção. eu havia implementado isso como root, e quis publicar com o usuário neto, mas não corrigi tudo. Valeu!

  3. Só uma duvida: e se eu uso nfs para exportar o /home do usuário do servidor para o cliente como é feita a cópia da chave neste caso visto que o diretório .ssh é o mesmo? Estou com essa dúvida porque uso nis e nfs

  4. Wagner, acho que no seu caso basta apenas copiar o conteúdo do arquivo id.rsa.pub para o arquivo .ssh/authorized_keys com o comando cat id_rsa.pub >> authorized_keys (de dentro do diretório ~/.ssh). Assim você poderá efetuar o login entre seus servidores (todos que mapearem o mesmo /home) sem necessitar de senha.

  5. Ok é isso mesmo! O problema é que mesmo depois de fazer isso o ssh continuava pedindo senha mas descobri que era por causa das permissões do diretório .ssh e do arquivo authorized_keys. (para resolver coloquei chmod 700 para .ssh e chmod 600 para authorized_keys). Obrigado pela ajuda!

  6. Neto…esse seu artigo esta bem simplificado…

    Valeu mesmo…..Melhor ainda com o complemento do Wagner com os “chmod”, o meu só funcionou depois disso…..

    Meus usuarios agradecem…

    Até mais…

  7. Neto estou com um problema semelhante ao Wagner, minhas máquinas continuam pedindo senha. Eu uso a distro redhat 7.2 com ssh atualizado para 3.7, segui todos os passos exatamente como estão no artigo e minhas máquinas continuam pedindo senha.

  8. Pingback: Ssh sem senha - chaves rsa

  9. Aqui no meu caso também esta acontecendo a mesma coisa, fiz tudo como falou acima, permissao de pasta e arquivo, mas ainda continua pedindo senha quando tento acessar, tu tem ideia do que possa estar acontecendo?

  10. Beleza Lincoln, tentasse executar também o comando: cat id_rsa.pub >> authorized_keys ?
    qual distro/versão do ssh você está usando?

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>