Невозможно экспортировать или перечислить ключи

323
Qohelet

Я использую свой рабочий стол для получения файлов с сервера (используя 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. 

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

0
что вы подразумеваете под "экспортом моих открытых ключей"? в парадигме ssh файлы в * .pub являются открытыми ключами. Они в основном используются в авторизованных ключах, чтобы разрешить входящее соединение ssh / scp / sftp. эти ключи не могут подписать документ или разрешить соединение https. Archemar 6 лет назад 0
@Archemar - так как мне перенести их в свой блокнот для подключения к серверу? Qohelet 6 лет назад 0
просто `cat ~ / .ssh / id_rsa.pub` (notebookID.pub?) от начального хоста и пользователя до авторизованного хоста и пользователя. (это одна строка для копирования / передачи) Archemar 6 лет назад 0
@Archemar `notebookID.pub` - это ключ, которым я обменялся, чтобы подключиться из моего ноутбука к рабочему столу без входа в систему. Qohelet 6 лет назад 0
После того, как вы `eval $ (ssh-agent)`, вам нужно добавить удостоверения, _e.g._ `ssh-add notebookID`. user4556274 6 лет назад 0
@ user4556274 Хорошо, сделал - сообщение об ошибке не пришло, но я все еще не могу экспортировать ключи в свой блокнот. Но почему я должен добавить блокнот? Мой блокнот уже имеет этот ключ. Я предполагаю, что это должен быть id_rsa. Пробовал оба, без изменений, но теперь `ssh-add -l` и` ssh-keygen -lf ~ / .ssh / id_rsa.pub` имеют одинаковый вывод. Qohelet 6 лет назад 0
Нигде в вашем вопросе вам точно не указано, что вы пытаетесь сделать, кроме «Я хочу использовать свой блокнот». Чтобы подключиться с компьютера ** A ** к компьютеру ** B ** с помощью ключа ssh, управляемого через ssh-agent, необходимо (1) ssh-agent, работающий на ** A ** (2) закрытый ключ, загруженный в ssh-agent в ** A ** (3) файл author_keys в ** B **, содержащий открытый ключ, соответствующий закрытому ключу в ** A **. (4) ключи gpg - это совершенно отдельный вопрос. user4556274 6 лет назад 0
@ user4556274 - я его редактировал, теперь понятнее? Qohelet 6 лет назад 0
Добавьте ключ записной книжки к файлу `author_keys` сервера:` notebook $ ssh-copy-id qohelet @ server`. Ключи рабочего стола не должны входить в него. У вас уже есть ключ рабочего стола на сервере; теперь вам также нужен ключ ноутбука на сервере. (?) user4556274 6 лет назад 0
@ user4556274 - это проблема. Я даже не могу соединиться с ноутбуком (C) с сервером (B). Я не очень разбираюсь в его конфигурации и обычно просто извлекаю файлы с помощью git или rsync. Разве я не могу просто экспортировать ключи с рабочего стола (A) в свой блокнот? Qohelet 6 лет назад 0
Давайте [продолжим это обсуждение в чате] (http://chat.stackexchange.com/rooms/59738/discussion-between-user4556274-and-qohelet). user4556274 6 лет назад 0

1 ответ на вопрос

2
grawity

Во-первых, вы смешиваете команды для двух совершенно не связанных программ. Несмотря на то, что они оба используют одни и те же криптографические алгоритмы, 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.)

Я их уже скопировал. Это было первое, что я попробовал, безуспешно Qohelet 6 лет назад 0
Нет успеха с чем - SSH? Rsync? До сих пор вы только сказали, что _wanted_ экспортировать их в свой блокнот, но ничего не продемонстрировали на нем - пост показывает только несвязанные команды на _desktop._ grawity 6 лет назад 0
Я использовал `tar -zcvf sshs.tgz .ssh /`, чтобы упаковать все ключи на рабочем столе (A), использовал `scp` из своей записной книжки (C), чтобы получить их, и просто сделал` gunzip sshs.tgz` в моем домашняя папка. Затем я попытался использовать git и rsync из записной книжки (C), чтобы получить файлы с сервера (B). Qohelet 6 лет назад 0
Какой из двух ключей вы ожидали использовать? (По умолчанию он будет использовать только id_rsa или ключи агента, если таковые имеются.) Вы пробовали простой `ssh` на сервер? (Добавление -v покажет, что он пытался.) grawity 6 лет назад 0
@ user4556274 предложил это уже. На рабочем столе (А) все работает нормально. На ноутбуке это не удается ... См .: https://chat.stackexchange.com/rooms/59738/discussion-between-user4556274-and-qohelet Qohelet 6 лет назад 0

Похожие вопросы