ssh-copy-id помилки не знайдено


79

У мене мало клієнтських систем, де мені потрібно натиснути клавішу ssh і ввійти зі свого сервера без запитів автентифікації.

По-перше, на сервері я створив ключ ssh, як показано нижче, який був успішним

]# ssh-keygen -t rsa -N "" -f my.key

По-друге, спробував скопіювати ключ pub, але не вдається, не помилившись ідентифікацією. Я роблю тут неправильний крок?

]# ssh-copy-id my.key.pub 10.10.1.1
/usr/bin/ssh-copy-id: ERROR: No identities found

Ви підтвердили, що my.keyце з ls -l my.key? Чи є такий крок, який ви нам не показуєте, який зробив cd? Можливо, ні, але просто запитуєте, як ваш "2-й набір очей" ;-). Удачі.
обстріл

Відповіді:


66

Вам потрібно використовувати -iпрапор:

ssh-copy-id -i my.key.pub 10.10.1.1

Зі сторінки користувача :

Якщо вказано параметр -i, використовується файл ідентифікації (за замовчуванням ~ / .ssh / id_rsa.pub), незалежно від того, чи є у вашому ssh-агенті ключі. В іншому випадку, якщо this: ssh-add -L надає будь-який результат, він використовує це, на відміну від файлу посвідчення


3
Я спробував із опцією -i та успішно натиснув клавішу до цілі. Також перевірив файл санкціонованих ключів, і ключ, здається, там є .. Потім після того, як я спробував ssh root@10.10.1.1, але все-таки потім запитує пароль .. чи є тут щось більше. ? ssh-copy-id -i my.key.pub 10.10.1.1 Тепер спробуйте увійти в машину за допомогою "ssh '10 .10.1.1 '" і перевірте: .ssh / дозволені_ключі, щоб переконатися, що ми не додали додаткові ключі що ти не очікував. ~] # ssh root@10.10.1.1 пароль:
root@10.10.1.1

3
ssh за замовчуванням шукає ~/.sshваші ключі тощо. Оскільки ваші my.keyфайли, здається, знаходяться в іншому каталозі, спробуйте ssh -i /location/of/my.key 10.10.1.1(або подумайте про переміщення ваших файлів my.key ~/.ssh)
Джош Веселий

42

Створення ключів ssh на клієнті вирішило це для мене

$ ssh-keygen -t rsa

1
Я б сказав, що це той, який працює для звичайного випадку (створення ключа SSH у місці за замовчуванням)
Stefan Reich

1
Просто ssh-keygenпрацював у мене. Не потрібно вказувати -t rsa.
Сопалахо де Аррієрес

31

Запустіть наступну команду

# ssh-add

Якщо це видає таку помилку: Не вдалося відкрити з'єднання з вашим агентом автентифікації

Щоб видалити цю помилку, виконайте таку команду:

# eval `ssh-agent`

5
Після ssh-agentзапуску eval виконайте ssh-add, а потім ssh-copy-id, і все повинно працювати коректно.
Сарадхі,

2
Дякую! Я намагався зрозуміти, що не працює, але це вирішило
maharvey67

1
початкова помилка /usr/bin/ssh-copy-id: ERROR: No identities foundвсе ще зберігається навіть після запуску вище команд
ulkas

Мені теж не допомогло
Штефан Рейх

9

Ssh-copy-id не може знайти файл id_rsa.pub, який генерується ssh-keygen у вашій системі, використовуйте таку команду для завершення:

  1. знайти шлях до файлу .pub: locate *.pub
  2. скопіюйте шлях (наприклад: /home/user_name/.ssh/id_rsa.pub) і запустіть таку команду: ssh-copy-id -i /home/user_name/.ssh/id_rsa.pub hostname

8

Найпростіший спосіб:

ssh-keygen
[enter]
[enter]
[enter]

cd ~/.ssh
ssh-copy-id -i id_rsa.pub USERNAME@SERVERTARGET

Att:

Це дуже просто.

У посібнику "ss-keygen" пояснюється:

"ОПИС ssh-keygen генерує, керує та конвертує ключі автентифікації для ssh (1). Ssh-keygen може створювати ключі RSA для використання за протоколом SSH версії 1 та ключі DSA, ECDSA або RSA для використання за протоколом SSH версії 2. Тип ключ, який потрібно згенерувати, визначається параметром -t. Якщо його викликати без будь-яких аргументів, ssh-keygen згенерує ключ RSA для використання у з'єднаннях протоколу SSH 2 "


Дякую. Це спрацювало. Мені не потрібно було генерувати ключ, оскільки я його вже мав. Він змінювався на каталог .ssh і використовував ту команду, яка це зробила.
Шон Расмуссен,

Це спрацювало для мене, дякую!
Арджун Кумар

7

Вам потрібно вказати ключ, використовуючи опцію -i.

ssh-copy-id -i your_public_key user@host

Дякую.


6

Старий пост, але я сьогодні придумав цю проблему, закінчив гуглити і опинився тут. Я зрозумів це самостійно, але думав, що поділюся своїм питанням та рішенням у своєму випадку, щоб допомогти кожному, хто може мати таку ж проблему.

Проблема:

[root@centos [username]]# ssh-keygen -t rsa

Enter file in which to save the key (/root/.ssh/id_rsa):Я ТІЛЬКИ ВДАЛ ВХОД

/usr/bin/ssh-copy-id: ERROR: No identities found

Рішення:

Enter file in which to save the key (/root/.ssh/id_rsa): **/home/[username]/id_rsa**

Переконайтеся, що якщо ви робите це як root, ви обробляєте ключ у каталозі користувача, з яким ви хочете увійти. НЕ кореневий каталог користувача.

Я виконував цю операцію, тому, здається, ssh-copy-id просто вказує на каталог, у який ви ввійшли, як за замовчуванням.

Сподіваюся, це комусь допоможе.


2

натрапив на цей, на наявний рахунок із закритим ключем, який я скопіював вручну з іншого місця. отже, помилка в тому, що громадськість відсутній ключ

так просто генеруйте один із приватного

 ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub

2

Насправді проблеми в одній з машин Ubuntu полягали в тому, що команда ssh-keygen не була запущена належним чином. Я спробував запустити ще раз і перейшов до /home/user1/.ssh і побачив ключі id_rsa та id_rsa.pub. потім спробував команду ssh-copy-id, і вона працювала нормально.


1

FWIW, варіант -i був для мене червоною оселедцем. ssh-copy-id за замовчуванням використовуватиме ~ / .ssh / id_rsa.pub.

Що заважало мені працювати, це дозволи на каталог ~, каталог ~ / .ssh та файл ~ / .ssh / санкціоновані_ключі на віддаленому комп'ютері.

З усіма трьома потрібно налаштуватися chmod 755 ~ ~/.ssh ~/.ssh/authorized_keys, тоді ssh-copy-id your-remote-server.comбуде працювати.


0

Використовуйте просте, ssh-keyscan hostnameщоб знайти, чи є ключі на обох сайтах:

ssh-keyscan rc1.localdomain
[or@rc2 ~]$ ssh-keyscan rc1
# rc1 SSH-2.0-OpenSSH_5.3
rc1 ssh-rsa AAAAB3NzaC1yc2EAAAABI.......==

ssh-keyscan rc2.localdomain
[or@rc2 ~]$ ssh-keyscan rc2
# rac2 SSH-2.0-OpenSSH_5.3
rac2 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAys7kG6pNiC.......==

-1

Я зіткнувся з цією проблемою сьогодні під час налаштування ssh між вузлом імені та вузлом даних у повністю розподіленому режимі між двома віртуальними машинами в CentOS.

Проблема зіткнулася, оскільки я запустив наведену нижче команду з вузла даних замість вузла імені ssh-copy-id -i /home/hduser/.ssh/id_ras.pub hduser @ HadoopBox2

Оскільки файл відкритого ключа не існував у вузлі даних, він видав помилку.


-3

У моєму випадку це було відсутнє .pubрозширення ключа. Я вставив його з буфера обміну і зберіг як mykey. Наступна команда повернула описану помилку:

ssh-copy-id -i mykey localhost

Після перейменування його на mv mykey mykey.pub, працює коректно.

ssh-copy-id -i mykey.pub localhost
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.