ssh-copy-id - дозвіл відхилений (publickey) [закрито]


30

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

Отже, скажемо, що A - це комп'ютер із програмним забезпеченням Linux. В - віртуальна машина в комп'ютері А.

MySQL знаходиться в Б.

C - це віртуальна машина в комп'ютері A, яка хоче підключитися до MySQL в B.

Тепер за цією статтею: http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id/

Я намагаюся скопіювати відкритий ключ на віддалений сервер. Я думаю, мені потрібно скопіювати його на комп’ютер А.

ssh-copy-id -i id_rsa.pub.bak [user]@[IP of A] -p [port of A]
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Тепер я спробував ввести парольну фразу для файлу id_rsa.pub.bak. Це заперечувало.

Потім я бачу, що він використовує ключ у /home/ evidenceuserSense/.ssh/id_rsa, який відрізняється від відкритого ключа, який я намагаюся скопіювати, я маю на увазі, звичайно, приватний ключ інший, але я маю на увазі, що я копіюю відкритий ключ іншого приватний ключ. Тому я спробував використати цю фразу. Також відмовлено.

Як я можу налагоджувати, чому відхилено парольну фразу?

Оновлення

На основі коментарів я створив новий публічний файл під назвою id_rsa.pub, де зараз усе в одному рядку

і запустіть і все ще отримаєте помилку.

ssh-copy-id -i id_rsa.pub [host and port] -vvv
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Оновлення

Перевірив дозволи на папку .ssh та файл дозволених ключів на комп’ютері A - їх 700 та 600, так що коментарі кажуть, що вони хороші.

Оновлення

Спробували встановити автентифікацію пароля так на комп’ютері та перезапустити послугу. Перезапуск як відповідь не вийшов, написав sshd не розпізнається, тому я перезапустив, використовуючи:

sudo /etc/init.d/ssh restart

Потім спробували знову на машині C скопіювати на A машину.

ssh-copy-id -i id_rsa.pub [user@host] -p [port] -v

і все те саме:

Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

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

Гаразд, якщо він там є, було б добре, але залишаючись там, це не дозволяє мені з'єднатися з ssh, не вводячи парольну фразу. Але мені вдалося зв’язатися із введенням парольної фрази. Тож тут явно все-таки не так. І ключ, який я намагаюся скопіювати, - це порожня парольна фраза. Коли я з'єднався з ssh - я ввів пароль, який не був порожнім.

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


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

@nlu - у мене є id_rsa, який я скопіював, перетягнувши файл і перетягнувши його за допомогою блокнота ftp Explorer. Також є id_rsa.bak, який я створив за допомогою нано та вставленого вмісту за допомогою миші з блокнота ++, але виглядало, що він створив той самий текст, але якось 2 колонки. А також у мене є id_rsa.pub.bak, який також робився з нано. Насправді він має 3 рядки, але в оригіналі є все в одному рядку. Не знаю, чи це має значення. Але як ми бачимо, я не отримав повідомлення про помилки щодо імен файлів.
Дарій.V

1
Це робить. Дивіться тут, наприклад: snailbook.com/faq/publickey-userauth.auto.html ("Якщо ви використовуєте текстовий редактор, переконайтеся, що він не порушує рядки в цьому файлі.").
nlu

Питання закрите, оскільки вони думають, що це не система в бізнес-середовищі, але я вирішував проблему бізнес-середовища.
Дарій.V

Відповіді:


25

Вам фактично потрібно увійти, щоб скопіювати свій ключ, у вас немає доступу до віддаленої машини (недійсні автентифікація ключа та пароля вимкнена):

Повторно ввімкніть аутентифікацію passwd в / etc / ssh / sshd_config:

PasswordAuthentication yes

Потім перезапустіть службу:

service sshd restart

Скопіюйте свій відкритий ключ:

ssh-copy-id -i ~/.ssh/id_rsa.pub USER@HOST -p PORT
[Enter user password]

Спробуйте ввійти ще раз, не потрібно вводити пароль.

Потім вимкніть автентифікацію пароля.


Що робити, якщо я встановив "PasswordAuth" так на сервері, на який я хочу увійти, і я можу з'єднатись із шпаклівкою за допомогою пароля, але ssh-copy-id все ще не запитує пароль і просто пише "Дозвіл відмовлено" (publickey). ?
Дарій.V

ей, я хочу сказати дякую !!! ти врятував мій день !!! дуже дякую!!!
尤川豪

Завдяки @Nabil, це працює і в Ubuntu 18.04. Просто обережність для майбутніх читачів: Редагувати / etc / ssh / sshd_config відповідно до інструкцій, а НЕ ssh_config шляхом нагляду (як я це робив!). Крім того, очевидно, що ssh-copy-id USER @ HOST є достатньою.
Снідхі Софпро

12

Permission denied (publickey) - це віддалений сервер SSH, який говорить "Я приймаю лише відкриті ключі як метод аутентифікації, йди геть".

Ось ваша головна проблема: потрапити у віддалену систему. Після цього ви можете завантажити свій ключ:

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

5

Знайшов проблему нарешті.

Насправді мені не потрібно було копіювати відкритий ключ. Один і той же відкритий ключ для обох приватних ключів - із парольною фразою та без парольної фрази. Я думав, що я маю приватний ключ без парольної фрази, але насправді цього не зробив. У мене був тільки .ppk без парольної фрази. То було пропустити спілкування. Тож колеги зробили приватний ключ без парольної фрази, і тепер я міг увійти, використовуючи ssh без парольної фрази. Я читав, що без парольної фрази погано, але колега каже, що це нормально. Мені знадобилося без парольної фрази, тому що мені потрібно запустити скрипт оболонки при перезавантаженні - я хочу запустити автошшш на перезавантаження комп'ютера.

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

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