Eu sou novo em chaves ssh. Alguém pode explicar como ssh-agent bash
e ssh-add
funciona?
Eu preciso entender seus internos no futuro.
Eu sou novo em chaves ssh. Alguém pode explicar como ssh-agent bash
e ssh-add
funciona?
Eu preciso entender seus internos no futuro.
Respostas:
Um agente é um programa que mantém suas chaves na memória para que você só precise desbloqueá-las uma vez , e não sempre. O ssh-agent faz isso para chaves SSH.
Os métodos usuais para iniciar o ssh-agent são:
eval `ssh-agent`
- isso executa o agente em segundo plano e define as variáveis de ambiente apropriadas para a instância atual do shell.
( ssh-agent , quando iniciado sem argumentos, gera comandos para serem interpretados pelo seu shell.)
exec ssh-agent bash
- inicia uma nova instância do bash
shell, substituindo a atual.
(Com um ou mais argumentos, o ssh-agent não gera nada, mas inicia o comando especificado: nesse caso, o bash
shell, mas tecnicamente poderia ser qualquer coisa.)
Às vezes, o segundo método é preferido, pois mata automaticamente o ssh-agent quando você fecha a janela do terminal. (Ao iniciar eval
, o agente permaneceria em execução, mas inacessível.)
No entanto, isso inicia apenas um agente vazio. Para realmente torná-lo útil, você precisa usar o ssh-add , que desbloqueia suas chaves (geralmente ~/.ssh/id_*
) e as carrega no agente, tornando-as acessíveis às conexões ssh ou sftp .
Além disso, convém adicionar algumas chaves no início da sessão.
Edite seu ~/.bashrc
arquivo e adicione:
ssh-add &>/dev/null || eval `ssh-agent` &>/dev/null # start ssh-agent if not present
[ $? -eq 0 ] && { # ssh-agent has started
ssh-add ~/.ssh/your_private.key1 &>/dev/null # Load key 1
ssh-add ~/.ssh/your_private.key2 &>/dev/null # Load key 2
}
Verifique suas chaves com ssh-add -l
Você pode parar a sessão atual do ssh-agent com ssh-agent -k
Algo a saber sobre ssh-agent e .bashrc é não carregar muitas chaves. O número padrão de tentativas para o daemon ssh é limitado a 6. Isso pode ser modificado /etc/ssh/sshd_config
com o MaxAuthTries
valor
ssh-add
com "&"? Você está assumindo que os arquivos de chave privada não estão protegidos?