Onde estão minhas chaves SSH privadas / públicas no UNIX?

11

Estou começando a entender como o RSA e os sistemas de chave pública / privada funcionam e fiquei me perguntando onde estão armazenadas as minhas chaves SSH privadas e públicas. Quando eu vou para o meu diretório home, e eu navego no meu diretório .ssh (cd .ssh), eu vejo apenas o arquivo "known_hosts", que eu acho que contém as chaves públicas de diferentes servidores SSH remotos que eu conheço.

Onde posso encontrar essas chaves? Eu nem me lembro de criá-los pelo caminho, mas desde que eu já estabeleci conexões ssh antes, eles devem estar em algum lugar.

Estou usando o OpenSSH_5.2p1 com o MAC OS 10.6.

Obrigado!

    
por Michael Eilers Smith 21.12.2011 / 00:04

3 respostas

11

~/.ssh/id_rsa e ~/id_rsa.pub normalmente. Mas não se segue que o ssh deva criar um par e salvá-los: o ssh basicamente usa o protocolo SSL, que estabelece uma chave de sessão usando o Algoritmo de troca de chaves Diffie / Hellman ou alguma variante. Isso significa que o handshake que estabelece a conexão gera uma chave de sessão e a descarta quando a sessão é concluída.

Leia sobre o algoritmo, é muito bacana: usando uma matemática bastante simples, ele estabelece uma chave conhecida para ambas as extremidades da conexão sem enviar a chave pela conexão.

    
por 21.12.2011 / 00:07
2

As suas chaves ssh públicas e privadas pessoais são normalmente armazenadas em:

$HOME/.ssh/id_dsa     (private key)
$HOME/.ssh/id_dsa.pub (public key)

Ou eles podem ser id_rsa e id_rsa.pub se você criou chaves RSA em vez de chaves DSA (o OpenSSH suporta ambos os formulários).

Mas o fato de você ter estabelecido conexões ssh antes não implica que você tenha chaves ssh. Se o comando ssh não puder encontrar sua chave pessoal, ele solicitará uma senha para o sistema remoto. Isso é menos seguro do que usar chaves.

Normalmente, você deve criar sua chave privada ssh com uma frase secreta. Se você criar sem uma frase secreta, alguém que receber uma cópia de sua chave privada poderá se passar por você. ssh-agent permite que você use uma chave com uma frase secreta sem precisar redigitar sua senha toda vez que a usar.

    
por 21.12.2011 / 00:20
2

Se você não criou um par de chaves, você provavelmente não terá um.

O tráfego SSH2 é criptografado com uma chave de sessão simétrica estabelecida usando DH, algoritmos ECDH ou troca de chave GSSAPI. Nem a chave do host nem a chave do usuário são usadas para criptografar dados - sua única finalidade é autenticação .

Agora lembre-se de que o SSH suporta vários métodos de autenticação: além de publickey , quase todos os servidores aceitam o simples password e / ou keyboard-interactive , no qual nenhuma geração ou uso de chave é necessário lugar - a senha é simplesmente enviada ao servidor remoto para verificação.

Em outras palavras, "já que eu já estabeleci conexões ssh antes, elas devem estar em algum lugar" está incorreto - o par de chaves do usuário não é necessário para estabelecer conexões.

Se você fez criar um par de chaves, provavelmente será em ~/.ssh/id_* - por exemplo, id_rsa para o par de chaves RSA padrão, id_ecdsa para ECDSA, id_dsa para DSA. Embora esses arquivos contenham ambas partes pública e privada do par de chaves, a parte pública é geralmente extraída automaticamente em um arquivo id_*.pub separado por conveniência ( id_rsa.pub para id_rsa e assim por diante). / p>     

por 21.12.2011 / 00:34

Tags