Я использую свой рабочий стол для получения файлов с сервера (используя git и rsync), теперь я хочу использовать свой ноутбук и поэтому пытаюсь экспортировать / импортировать необходимые RSA-ключи.

Автоматический вход с ноутбука на рабочий стол включен и работает нормально.

Изменить: указать: есть рабочий стол (A), который может подключаться к серверу (B) без какого-либо пароля. С моим ноутбуком (C) я могу подключиться к рабочему столу (A), но не к серверу (B).

Теперь я хотел бы экспортировать ключи рабочего стола (A) в свой блокнот (C), чтобы я мог подключиться к серверу (B).

На рабочем столе (A) я вижу ключ моего желания:

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)

Файлы тоже есть:

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

Странно, что эти команды не имеют никакого вывода вообще:

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

Интересно, в моей записной книжке должен быть хотя бы открытый ключ.

Попытки перечислить или экспортировать ключи не удаются:

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

Агент работает:

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;

Первая ошибка выглядит многообещающе для поиска в интернете. Stackoverflow предоставляет несколько ответов:

Предлагаемое решение с eval на самом деле не улучшает вещи:

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

Что я делаю неправильно..? У меня нет идей. Спасибо

1 ответ1

2

Во-первых, вы смешиваете команды для двух совершенно не связанных программ. Несмотря на то, что они оба используют одни и те же криптографические алгоритмы, OpenSSH и GnuPG (PGP) имеют свои собственные типы ключей и независимое хранилище.

Исключением будет, если вы используете эмуляцию SSH агента gpg-agent. Но вы не используете это - вы используете стандартный агент OpenSSH.

Поэтому gpg не должен перечислять ключи SSH для вас. Просто скопируйте .ssh/id_rsa и .ssh/notebookID (и связанные с ними файлы .pub) вручную, используя scp, sftp, & c.


Во-вторых, ssh-agent также не имеет ничего общего с экспортом ключей. Он может хранить ваши ключи в памяти с целью их использования в SSH, но в любом случае не позволит вам экспортировать их обратно . (Он также не загружает ключи автоматически, вы должны ssh-добавлять их каждый раз.)

Так что в этом случае вам не нужен ssh-add -l чтобы вывести список или даже работать. Просто скопируйте файлы вручную.

(Опять же, приведенное выше не обязательно относится к "эмуляции агента SSH" от gpg-agent.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .