força o ssh a usar o agente, sem nenhum fallback

2

A política da empresa exige que algumas chaves ssh sejam armazenadas com segurança, por exemplo, no dispositivo USB dedicado. O uso de chaves não armazenadas na máquina host funciona sem falhas usando o gnupg com enable-ssh-support , mesmo quando várias chaves são usadas:

Host example.com
    HostName ssh.example.com
    IdentityFile ~/.ssh/smartcard.pub
Host example.net
    HostName git.example.net
    IdentityFile ~/.ssh/another-smartcard.pub
Host example.org
    HostName sftp.example.org
    IdentityFile ~/.ssh/id_rsa.pub

IdentitiesOnly yes
PasswordAuthentication no
PubkeyAuthentication yes

No entanto, quando o hardware é desconectado, o gpg remove a chave do agente e as chamadas subseqüentes do ssh resultam em:

Enter passphrase for key '/home/user/.ssh/smartcard.pub':

Isso parece estranho, já que tanto o ssh quanto o ssh-agent devem estar bem cientes de que o arquivo contém apenas uma chave pública. Existe uma boa maneira de fazer com que o ssh falhe de forma grosseira se não tiver como acessar a chave especificada, em vez de pedir uma frase-senha (sem sentido)?

Soluções incompletas:

  1. remover IdentitiesOnly - ssh tentará todas as chaves utilizáveis conforme o esperado - mas causará problemas com servidores que limitem as tentativas de autenticação por sessão
  2. envolva o ssh de alguma forma alias ssh='grep ^4096 <(ssh-add -l)' && ssh' - funciona, mas causará dor de cabeça caso alguém queira descobrir por que a configuração do ssh dele está quebrada
por anx 15.01.2018 / 06:14

0 respostas