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)
André Sencioles:
o comando correto não seria:
4 Novembro 2005, 7:25 amscp id_rsa.pub neto@servidor:id_rsa-cliente
já que o arquivo deve estar no diretório home do usuário neto?
Neto:
É 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!
4 Novembro 2005, 9:18 amWagner:
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
22 Novembro 2005, 3:35 pmNeto:
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
23 Novembro 2005, 2:04 pmcat 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.Wagner:
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!
25 Novembro 2005, 3:31 pmNeto:
Ok Wagner, obrigado pelo retorno! Qualquer dúvida sinta-se a vontade em perguntar.Um Abraço, Neto.
26 Novembro 2005, 3:28 pmMarcos:
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…
22 Dezembro 2005, 7:07 pmFlávio:
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.
23 Outubro 2006, 1:33 pmEliezer:
No meu caso está pedindo a frase !!
18 Setembro 2007, 10:05 amSsh sem senha - chaves rsa:
[…] Retirado de: http://josemorelli.net/2005/11/03/ssh-sem-senha-para-acesso-remoto-utilizando-chave-pubpriv […]
23 Janeiro 2008, 5:46 pm