Criar chave para acesso SSH sem senha
Gerando a sua chave no Windows
Certifique-se que o Windows já esteja com o OpenSSH instalado. Caso não esteja, siga os passos abaixo:
Instalando o OpenSSH no Windows
- Abra o PowerShell como administrador
- Execute os comandos abaixo, isso irá instalar o OpenSSH Client e Server, além de iniciar o serviço e configurar para iniciar automaticamente:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd
Set-Service -Name sshd -StartupType 'Automatic'
Get-Service -Name ssh-agent | Set-Service -StartupType 'Automatic'
Caso haja algum problema nos comandos acima, verifique através da interface gráfica se o serviço foi instalado e se está iniciado, conforme a imagem abaixo:
Gerando a chave
Para gerar a chave ssh no Windows, abra o PowerShell e execute o comando abaixo:
ssh-keygen -t rsa -b 4096
O comando acima irá gerar uma chave RSA de 4096 bits. Caso queira gerar uma chave de outro tipo, basta alterar o parâmetro -t
para o tipo desejado. Para mais informações, execute o comando ssh-keygen -h
.
Você pode obter mais informações no endereço https://learn.microsoft.com/pt-br/windows-server/administration/openssh/openssh_keymanagement.
Adicionando a sua chave privada no Windows
Para adicionar a sua chave privada no Windows, basta executar o comando abaixo no PowerShell:
ssh-add ~/.ssh/id_rsa
Caso tenha problema ao executar o comando acima, mesmo depois de instalar as dependências listadas logo no início do artigo, certifique-se de ter iniciado o ssh-agent
Start-Service ssh-agent
Implantando a chave no servidor
Para cadastrar a chave no servidor, basta copiar o conteúdo do arquivo id_rsa.pub
para o arquivo ~/.ssh/authorized_keys
no servidor, você pode fazer isso manualmente ou usando o comando abaixo:
cat ~/.ssh/id_rsa.pub | ssh user@host -p 22 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && systemctl restart sshd"
Gerando a chave no Linux Ubuntu
ssh-keygen -t rsa -b 4096 -C "
Criar um par de chaves
ssh-keygen -t rsa -b 4096 -C "
Copiar a chave pública para o servidor
ssh-copy-id -i ~/.ssh/id_rsa.pub user@host
Copiar a chave pública para o servidor que usar porta diferente de 22
ssh-copy-id -i ~/.ssh/id_rsa.pub -p 2222 user@host
Configurar o SSH para não pedir senha
Caso você queira que o acesso ao SSH seja exclusivamente por chave, você pode desabilitar o acesso por senha. Para isso, edite o arquivo /etc/ssh/sshd_config
e altere a variável PasswordAuthentication
e em seguida reinicie o serviço.
vim /etc/ssh/sshd_config
PasswordAuthentication no
systemctl restart sshd