Для использования ssh-id-copy вам нужны и id_rsa.pub, и id_rsa?

19

Я пытаюсь настроить второй ключ доступа SSH для друга. Он прислал мне свой id_rsa.pub.

ssh-copy-id -i id_rsa.pub root@123.123.123.123
/usr/local/bin/ssh-copy-id: ERROR: failed to open ID file './id_rsa': No such file or directory

Нужно ли мне, чтобы он отправил мне оба файла?


источник
1
.Pub достаточно. И помните, что вы всегда держите свой секретный ключ в секрете (всегда!). Чтобы добавить новый ключ, вы можете просто добавить содержимое .pub к вашему авторизованному ключу.
deagh
2
@deagh Вам не нужно хранить секретный ключ в секрете, вы должны хранить его в безопасности.
Сценарий ssh-copy-id здесь , похоже, не генерирует это конкретное сообщение об ошибке. Я заметил, что ваш скрипт ssh-copy-id находится в / usr / local / bin. Это может отличаться от обычно используемой версии команды.
Кенстер

Ответы:

12

Команда ssh-copy-idиз OpenSSH завершается неудачно, если нет доступного файла с закрытым ключом с таким же именем, потому что он пытается войти в систему с указанным ключом, чтобы проверить, присутствует ли он уже на удаленном сервере.

В последних версиях вы можете изменить это поведение с помощью -fпереключателя («Принудительный режим»).

Со страницы руководства :

-f

    Принудительный режим: не проверяет наличие ключей на удаленном сервере. Это означает, что ему не нужен закрытый ключ. Конечно, это может привести к установке более одной копии ключа в удаленной системе.

Дарио Сеидл
источник
1
заголовки, порядок параметров строгий. -fработает только как ожидается , если вы передаете его , прежде чем в -iаргументе. ssh-copy-id -i mykey.pub -f otheruser@hostпросто жалуется, пока вы не двигаетесь вперед.
init_js
5

.pubДостаточно. Вы не в правильной папке.

Вы можете попробовать это:

ssh-copy-id -i /root/.ssh/id_rsa.pub root@123.123.123.123

(для пользователя root: не рекомендуется, это всего лишь пример).

Этот файл находится в .sshпапке в папке пользователя.

Жереми Муньос
источник
4
На Mac это нужно, -fесли у вас нет личного ключа, я думаю
Stevie G
1

Как уже упоминалось, это ошибка.

В любом случае вы можете просто создать пустой файл, чтобы он работал. В твоем случае:

$ touch ./id_rsa
$ ssh-copy-id -i id_rsa.pub root@123.123.123.123

У меня была та же проблема, и это сработало для меня 👍

jawira
источник
-1

это работает для меня, вопрос, когда он спрашивает «Введите файл, в котором сохранить ключ (/Users/xiaoyu/.ssh/id_rsa):« вы должны ввести id_rsa

и используйте команду "ssh-copy-id -i ~ / .ssh / id_rsa.pub polytech@192.168.0.102"

user984431
источник