Autenticação não interativa com o gerenciador de chaves
Se você criptografar sua chave privada com uma senha, deverá inseri-la toda vez que usar a chave privada para autenticação. No entanto, você pode configurar o gerenciador de chaves ssh-agent
para armazenar em cache as senhas. Então, cada vez que você usar o SSH, o gerenciador de chaves ssh-agent
fornecerá a senha para você. Usar um gerenciador de chaves é conveniente e pode melhorar a segurança, fornecendo menos oportunidades para outras pessoas observarem sua senha.
O gerenciador de chaves ssh-agent
pode ser configurado para iniciar automaticamente quando você fizer login. O ambiente gráfico de área de trabalho GNOME pode iniciar e configurar automaticamente o gerenciador de chaves ssh-agent
. Se você fizer login em um ambiente de texto, deverá iniciar o programa ssh-agent
manualmente para cada sessão. Inicie o programa ssh-agent
com o seguinte comando:
[user@host ~]$ eval $(ssh-agent)
Agent pid 10155
Quando você inicia manualmente o comando ssh-agent
, ele executa comandos de shell adicionais para definir variáveis de ambiente que são necessárias para uso com o comando ssh-add
. Você pode carregar manualmente sua senha de chave privada para o gerenciador de chaves usando o comando ssh-add.
Os comandos de exemplo ssh-add
a seguir adicionam as chaves privadas do arquivo padrão ~/.ssh/id_rsa
e, em seguida, de um arquivo ~/.ssh/key-with-pass
.
[user@host ~]$ ssh-add
Identity added: /home/user/.ssh/id_rsa (user@host.lab.example.com)
[user@host ~]$ ssh-add .ssh/key-with-pass
Enter passphrase for .ssh/key-with-pass: your_passphrase
Identity added: .ssh/key-with-pass (user@host.lab.example.com)
O comando ssh a seguir usa o arquivo de chave privada padrão para acessar sua conta em um servidor SSH remoto.
[user@host ~]$ ssh user@remotehost
Last login: Mon Mar 14 06:51:36 2022 from host.example.com
[user@remotehost ~]$
O comando ssh a seguir usa o acesso de chave privada ~/.ssh/key-with-pass
para acessar sua conta no servidor remoto. A chave privada neste exemplo foi descriptografada anteriormente e adicionada ao gerenciador de chaves ssh-agent, portanto, o comando ssh não solicita a senha para descriptografar a chave privada.
user@host ~]$ ssh -i .ssh/key-with-pass user@remotehost
Last login: Mon Mar 14 06:58:43 2022 from host.example.com
[user@remotehost ~]$
Quando você faz o logout de uma sessão que usou um gerenciador de chaves ssh-agent
, todas as senhas armazenadas em cache são apagadas da memória.