Não é possível exportar ou listar chaves

0

Estou usando minha área de trabalho para obter arquivos de um servidor (usando git e rsync), agora quero usar meu bloco de anotações e, portanto, tentar exportar / importar as chaves RSA necessárias.

O login automático do notebook para a área de trabalho está ativado e funciona bem.

Editar: Especificar: Existe o Desktop (A) que pode se conectar ao servidor (B) sem qualquer senha. Com o meu Notebook (C), posso me conectar à área de trabalho (A), mas não ao servidor (B).

Agora eu gostaria de exportar as chaves da área de trabalho (A) para o meu notebook (C) para que eu possa conectar ao servidor (B).

Na área de trabalho (A), vejo a chave do meu desejo:

mario@desktop:~$ ssh-keygen -lf ~/.ssh/id_rsa.pub
4096 xx:xx:xx:yy:yy:yy:zz:zz:zz:xy:yz:xz:yx:zy:zx:xx  mario@desktop (RSA)

Os arquivos também estão lá:

mario@desktop:~$ ls -l ~/.ssh/*
-rw-rw-r-- 1 mario mario 1147 Mai 30 12:48 /home/mario/.ssh/authorized_keys
-rw------- 1 mario mario 3243 Apr 11 16:30 /home/mario/.ssh/id_rsa
-rw-r--r-- 1 mario mario  741 Apr 11 16:30 /home/mario/.ssh/id_rsa.pub
-rw-r--r-- 1 mario mario  444 Apr 11 16:32 /home/mario/.ssh/known_hosts
-rw------- 1 mario mario 1766 Mai 15 12:35 /home/mario/.ssh/notebookID
-rw-r--r-- 1 mario mario  397 Mai 15 12:35 /home/mario/.ssh/notebookID.pub

Estranhamente, esses comandos não têm nenhuma saída:

mario@desktop:~$ gpg --list-keys
mario@desktop:~$ gpg --list-secret-keys 

Eu me pergunto, deve haver pelo menos a chave pública do meu notebook listado.

As tentativas de listar ou exportar chaves falham:

mario@desktop:~$ ssh-add -l
Could not open a connection to your authentication agent.
mario@desktop:~$ gpg --export --output public-keys.asc
gpg: WARNUNG: Nothing exported
mario@desktop:~$ gpg --export-secret-keys --output secret-keys.asc
gpg: WARNUNG: Nothing exported
mario@desktop:~$ gpg --export-secret-key secring.gpg
gpg: WARNUNG: Nothing exported

O agente funciona:

mario@desktop:~$ ssh-agent 
SSH_AUTH_SOCK=/tmp/ssh-xxfgqbw7SnZe/agent.5801; export SSH_AUTH_SOCK;
SSH_AGENT_PID=5802; export SSH_AGENT_PID;
echo Agent pid 5802;

O primeiro erro parece promissor para pesquisar na internet. O Stackoverflow fornece algumas respostas:

A solução sugerida com eval não está realmente melhorando as coisas:

mario@desktop:~$ eval $(ssh-agent)
Agent pid 5849
mario@desktop:~$ ssh-add -l
The agent has no identities.

O que estou fazendo errado? Estou sem ideias. Obrigado

    
por Qohelet 02.06.2017 / 13:22

1 resposta

2

Primeiro, você está misturando comandos para dois programas totalmente não relacionados. Mesmo que ambos dependam dos mesmos algoritmos criptográficos, o OpenSSH e o GnuPG (PGP) possuem seus próprios tipos de chaves e armazenamento independente.

Uma exceção seria se você usasse a emulação de agente SSH do gpg-agent. Mas você não está usando isso - você está usando o agente OpenSSH em estoque.

Portanto gpg não deve listar nenhuma chave SSH para você. Basta copiar .ssh/id_rsa e .ssh/notebookID (e seus arquivos .pub associados) manualmente, usando scp, sftp, & c.

Em segundo lugar, o ssh-agent também não tem nada a ver com a exportação de chaves. Ele pode guardar suas chaves na memória com o propósito de usar elas no SSH, mas não permitirá que você as exporte de volta de qualquer maneira. (Ele também não carrega automaticamente as chaves , você deve ssh-adicioná-los o tempo todo.)

Então, neste caso, você não precisa ssh-add -l para listar qualquer coisa ou até mesmo trabalhar. Basta copiar os arquivos manualmente.

(Novamente, o acima não se aplica necessariamente à "emulação do agente SSH" do gpg-agent.)

    
por 02.06.2017 / 14:53