Estou começando a entender como o RSA e os sistemas de chave pública / privada funcionam e fiquei imaginando onde minha chave SSH pública e privada é armazenada. Quando vou ao meu diretório pessoal e navego no diretório .ssh (cd .ssh), vejo apenas o arquivo "known_hosts", que, suponho, contém as chaves públicas de diferentes servidores SSH remotos que conheço.
Onde posso encontrar essas chaves? Nem me lembro de criá-los a propósito, mas desde que eu já estabeleci conexões ssh antes, elas devem estar em algum lugar.
Estou usando o OpenSSH_5.2p1 com o MAC OS 10.6.
Obrigado!
publickey
é apenas um método de autenticação possível para muitos; se você simplesmente efetuou login usandopassword
oukeyboard-interactive
, a própria senha foi enviada. (Nota: Não confunda a chave do usuário, a chave do host e as chaves da sessão.)Suas chaves ssh públicas e privadas pessoais são normalmente armazenadas em:
Ou poderiam ser
id_rsa
eid_rsa.pub
se você criou chaves RSA em vez de chaves DSA (o OpenSSH suporta os dois formulários).Mas o fato de você ter estabelecido conexões ssh antes não implica que você tenha chaves ssh. Se o
ssh
comando não conseguir encontrar sua chave pessoal, ele solicitará uma senha para o sistema remoto. Isso é menos seguro do que usar chaves.Você normalmente deve criar sua chave privada ssh com uma senha. Se você criá-lo sem uma senha, alguém que obtenha uma cópia da sua chave privada poderá se passar por você.
ssh-agent
permite que você use uma chave com uma frase secreta sem ter que redigitar sua senha sempre que a usar.fonte
Se você não criou um par de chaves, provavelmente não possui um.
O tráfego SSH2 é criptografado com uma chave de sessão simétrica estabelecida usando os algoritmos DH, ECDH ou troca de chaves GSSAPI. Nem a chave do host nem a chave do usuário são usadas para criptografar dados - seu único objetivo é a autenticação .
Agora lembre-se de que o SSH suporta vários métodos de autenticação: além disso
publickey
, quase todos os servidores aceitam o simplespassword
e / oukeyboard-interactive
, no qual não ocorre geração ou uso de chave - a senha é simplesmente enviada ao servidor remoto para verificação.Em outras palavras, "desde 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, ele provavelmente vai 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 partes privada e pública do par de chaves, a parte pública geralmente é extraída automaticamente em umid_*.pub
arquivo separado por conveniência (id_rsa.pub
paraid_rsa
assim por diante).fonte