SSH, ou Secure Shell, é um shell seguro usado para o acesso remoto de todos os tipos de dispositivos a servidores, através de um canal tunelizado e protegido por encriptação, o que lhe confere uma segurança que impede, ou pelo menos torna extremamente difícil, que terceiros possam interceptar o nome de utilizador ou a palavra-passe. No caso do * Nix, temos este protocolo disponível através do OpenSSH, um conjunto de soluções cliente-servidor disponível em todas as distribuições Linux e plataformas relacionadas como * BSD.
Agora, se o SSH nos oferece um excelente nível de segurança, por que quereríamos usá-lo sem a necessidade de digitar uma senha? Pode haver vários motivos, mas um que comumente se destaca como gerador é a necessidade de logar remotamente através de scripts e realizar tarefas de superusuário, e é que como bem sabemos não é aconselhável colocar esses dados em nenhum script. Para resolver este problema, vamos ver como gerar chaves SSH para poder fazer login remotamente sem a necessidade de uma senha.
Isso nos requer gerar uma chave pública e uma chave privada: la primera será almacenada en el servidor al cual vamos a acceder y como su nombre lo indica podemos enviarla o compartirla, y la segunda estará almacenada en el dispositivo (ordenador, smartphone, tableta) desde el cual vamos a acceder a dicho servidor, y deve ser mantido com muito cuidado e apenas usado por nós ou por pessoas em quem confiamos.
Pelo que foi mencionado no parágrafo anterior, é importante comentar que este tipo de solução exige uma responsabilidade muito grande no cuidado dos dispositivos a partir dos quais vamos entrar em um servidor, que é de quem tem acesso eles podem acessá-lo sem precisar saber a senha, o que é um grande risco de segurança. Com isso esclarecido, vamos ver como podemos iniciar, e para isso a primeira coisa é ter o daemon SSH instalado no servidor:
# apt-get install openssh-server
Agora temos que criar o diretório .ssh no diretório do usuário:
# mkdir -p $ HOME / .ssh
# chmod 0700 $ HOME / .ssh
# touch $ HOME / .ssh / authorized_keys
Nós editamos o arquivo / etc / ssh / sshd_config e verificamos se as seguintes linhas são como estão:
PubkeyAuthentication sim
AuthorizedKeysFile% h / .ssh / authorized_keys
Agora vamos ao cliente e executamos:
ssh-keygen -t rsa
Seremos informados de que a chave está sendo criada e seremos solicitados a inserir o arquivo no qual ela será armazenada (por padrão, estará em nossa casa, em uma pasta chamada /.ssh/id_rsa). Podemos pressionar Enter já que esse local nos atende perfeitamente, e então pressionamos Enter novamente nas duas vezes que nos é solicitado digite uma senha já que, lembre-se, vamos inserir remotamente sem inserir nenhum dado, portanto, também não queremos nenhuma frase.
Agora que temos a chave pública, devemos compartilhá-la com os computadores aos quais vamos nos conectar. Supondo que o servidor de que estamos falando tenha o endereço 192.168.1.100, o que você deve fazer é:
ssh-copy-id -i $ HOME / .ssh / id_rsa.pub root@192.168.1.100
Após a cópia, seremos convidados a execute o login remoto para testar as chaves, e deve-se levar em consideração que neste caso raiz É a conta com a qual vamos acessar o servidor, então se quisermos fazer isso com outro usuário devemos modificar o root para a conta de usuário com a qual vamos realizar o acesso via SSH.
Agora, só precisamos reiniciar o servidor SSH para que ele receba a nova configuração:
# /etc/init.d/ssh reiniciar
A partir de agora, se quisermos acessar um segundo servidor e fazê-lo sem inserir uma senha, basta enviar a chave pública, com a qual simplesmente repetimos o último passo, alterando o usuário e o endereço IP conforme necessário:
ssh-copy-id -i $ HOME / .ssh / id_rsa.pub admin@192.168.1.228
Obrigado pela informação, mas nada… não tem como….
Venho tentando a manhã toda e sempre pede minha senha.
Há algum tempo tentei e deixei como impossível pelo mesmo motivo….
Eu crio minha chave no meu Macbook, copio-a para o meu raspberry em ~ / .ssh / authorizedKeys
Eu configuro o sshd.conf com autenticação pública e verifico se o diretório das chaves está exatamente onde as chaves estão. Eu reinicio o raspberry e ao conectar ele me pede novamente a senha
O que pode falhar?
Depois de várias horas tentando muitas coisas, descobri que com meu usuário criado isso nunca funciona, mas com o usuário padrão chamado "ubuntu" ele funciona pela primeira vez.
Algum esclarecimento sobre por que isso pode acontecer?
Saludos y gracias