Use chaves privadas somente do ssh-agent, evitando “Muitas falhas de autenticação”

3

Eu armazeno todas as minhas chaves privadas criptografadas no arquivo encfs. Eu montei (descriptografar) o arquivo encfs para a pasta, adicione todas as chaves privadas ao ssh-agent com um sinalizador de tempo de vida e desmonte a pasta. Nesse caso, meus arquivos de chave privada eram mantidos criptografados e eu podia acessá-los por meio do ssh-agent.

Minha lista de chaves cresceu e comecei a receber "Muitas falhas de autenticação para% username%" Eu procurei por solução alternativa e o conselho comum é especificar cada IdentityFile em ~ / .ssh / config

Host hostalias
    Hostname my.host.name
    User username
    IdentityFile ~/.ssh/unencrypted_key

Mas, neste caso, minhas chaves devem ser armazenadas em estado não criptografado o tempo todo, pois o ssh irá acessá-las diretamente (ignorando o ssh-agent).

Existe alguma solução possível para especificar qual chave privada ssh (do ssh-agent) para qual host deve ser usado?

P.S. Cada chave tem sua própria impressão digital e eu assumi que isso poderia ser resolvido especificando-a na configuração (algo como isto):

Host hostalias
    Hostname my.host.name
    User username
    IdentityFingerPrint 0c:d6:e6:64:0f:b5:1f:29:11:51:12:74:90:55:49:ae

Mas não encontrei nada parecido.

    
por MoLLIa 02.11.2014 / 18:25

1 resposta

1

Primeiro, observe que os arquivos de chave privada do SSH podem ser criptografados com uma frase-senha, sem ferramentas adicionais, como o encfs. Usar ssh-keygen -f <file> -p definiria a frase secreta. (As versões recentes do OpenSSH usam AES-128-CBC para isso.)

Mas quando você tem os dois IdentityFile e um agente em execução, o ssh simplesmente usará o arquivo como uma dica ao escolher qual chave ele deve usar. Para isso, basta verificar a metade pública da chave. Portanto, você não precisa manter as chaves descriptografadas, contanto que elas tenham a chave pública extraída para um arquivo .pub correspondente, o que é feito por padrão, mas pode ser repetido usando ssh-keygen -f <file> -y .

    
por 03.11.2014 / 06:54