ssh - Usando chaves de acesso
Veja o vídeo desse arquivo aqui.
Acessar servidores via SSH usando um conjunto de chaves publica/privada é mais seguro e prático, principalmente mais seguro, além de facilitar a automação de várias tarefas.
Criando as chaves
Primeiro crie as chaves com o seguinte comando:
mkdir ~/.ssh
ssh-keygen
Precisa fazer isso apenas uma vez na máquina cliente e um conjunto de chaves será gerado, você pode definir o nome do arquivo que por padrão seria id_rsa
para a chave secreta e id_rsa.pub
para a chave publica.
É interessante criar uma chave para cada servidor que planeja acessar, assim como é aconselhável gerar senhas para cada serviço, mas no caso das chaves você esta no controle de metade da chave, a parte secreta, essa precisa ficar bem protegida.
Copiando a chave publica para o servidor
É necessário copiar a chave que acabamos de gerar para o arquivo ~/.ssh/authorized_keys
no servidor. Você pode fazer isso manualmente usando os seguintes comandos.
cat ~/.ssh/id_rsa.pub |
ssh usuário@exemplo.com.br 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'
Mas é mais fácil usar o comando ssh-copy-id
que praticamente faz a mesma coisa, veja o exemplo.
ssh-copy-id -i ~/.ssh/id_rsa.pub usuário@exemplo.com.br
Com qualquer um dos dois comandos, o diretório .ssh
será criado no home do usuário no servidor e essa será a última vez que você precisou digitar a senha para acessar esse terminal.
Ainda mais prático
Você pode parar no comando anterior, o servidor já está aceitando suas conexões SSH sem pedir a senha porque estamos usando um conjunto de chaves publica/privada. Mas podemos tornar as coisas ainda mais fáceis.
Edite o arquivo ~/.ssh/config
como no exemplo abaixo.
Host *
ServerAliveInterval 240
ConnectTimeout 0
Host exemplo
HostName exemplo.com.br
Port 22
User nome_usuário
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
Com isso você esta configurando o SSH para não desconectar por inatividade, o que ajuda bastante quando se esta programando e é preciso ficar muito tempo indo e voltando entre seu terminal e outras ferramentas. Também estamos configurando o nome do usuário, a porta e um apelido para o servidor, dessa forma no lugar de digitar ssh voce@exemplo.com.br
basta digitar ssh exemplo
. Essa pequena economia de teclas faz toda diferença e também previne erros.
Segurança
Esse tipo de configuração é mais segura que usar apenas uma senha desde que você cuide bem do seu conjunto de chaves.