Bloqueie periodicamente as chaves ssh enquanto estiver conectado

Bloqueie periodicamente as chaves ssh enquanto estiver conectado

Eu uso ssh diariamente para fazer login em alguns servidores que gerencio e uso uma chave ssh para fazer login. Como gerei minha chave ssh com uma senha, na primeira vez que uso o ssh em um dia, uma senha é solicitada. Quero que isso seja bloqueado periodicamente novamente ao longo do dia, para que alguém que tenha acesso ao meu laptop enquanto ele estiver ligado não tenha necessariamente acesso aos servidores. Não consigo encontrar uma opção para isso e também não consigo descobrir um comando para bloquear a chave. Se existir tal comando, eu poderia adicioná-lo ao crontab.

Provavelmente a melhor opção é simplesmente não usar uma chave ssh.

Responder1

Você provavelmente tem um programa chamado ssh-agentrunning. Quando você sshacessa algum outro host, o sshcomando se comunica com ele ssh-agentpara manter as chaves e suas senhas.

Por padrão, ele ssh-agentlembra as senhas para sempre (até sair), então você só precisa digitá-las uma vez para cada chave.

O comandossh-addé usado para gerenciar a lista de identidades conhecidas ssh-agent .

Para mostrar a lista de chaves que você ssh-agentconhece, emita

ssh-add -l

Para fazer issoesquecersuas chaves e senhas, emita

ssh-add -D

Quando você sshentrar em algum host, será solicitada novamente a senha.

Também é possível fornecer umvidapara uma senha:

ssh-add -t 3600     # 1 hour

mas isso não funcionou para mim (ou fiz algo errado). Eu configuraria um cronjob que funciona ssh-add -Da cada N horas. Isso pode ser um pouco complicado porque ssh-addprecisa que a variável de ambiente SSH_AUTH_SOCKse comunique com o ssh-agente essa variável provavelmente não está definida no cron.

Mas, conforme declarado em um comentário, você não deve deixar seu laptop sem vigilância enquanto estiver fora, mas sim bloqueá-lo.

Responder2

Você poderia simplesmente escrever uma linha em seu $HOME/.bash_logoutarquivo que mova sua chave SSH do seu ~/.ssh/diretório para um diretório diferente? Então faça o oposto em $HOME/.bash_login.

Veja esta postagem sobre como fazer isso com o systemd.

informação relacionada