?? 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)
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?
?? 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!
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
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.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!
Ok Wagner, obrigado pelo retorno! Qualquer dúvida sinta-se a vontade em perguntar.Um Abraço, Neto.
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…
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.
No meu caso está pedindo a frase !!
Pingback: Ssh sem senha - chaves rsa
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?
Beleza Lincoln, tentasse executar também o comando: cat id_rsa.pub >> authorized_keys ?
qual distro/versão do ssh você está usando?