ssh-copy-id - разрешение запрещено (publickey) [закрыто]

30

Я хочу настроить туннель SSH к серверу MySQL, который находится на компьютере, который имеет виртуальную машину. Также туннель должен работать, если машина перезапущена.

Допустим, А - это компьютер с программным обеспечением Linux. Б - виртуальная машина на компьютере А.

MySQL находится в B.

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/[user]/.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 и файла author_keys на компьютере A - их 700 и 600, так что в комментарии говорится, что они хороши.

Обновить

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

sudo /etc/init.d/ssh restart

Затем снова попытался на С-машине скопировать на А-машину.

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

и все тот же

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

Если я иду, чтобы скопировать ключ вручную в author_keys, я вижу, что открытый ключ уже существует, тот же, который я хочу скопировать. Я спросил своего коллегу, он сказал, что не копировал его. Поэтому я даже не понимаю, как это может быть там.

Хорошо, если он там есть, это было бы хорошо, но, оставаясь там, он не позволяет мне соединиться с ssh без ввода пароля. Но я смог связаться с вводом ключевой фразы. Так что здесь явно что-то не так. И ключ, который я пытаюсь скопировать, с пустой парольной фразой. Когда я связался с ssh - я ввел фразу-пароль, которая не была пустой.

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

Darius.V
источник
Какие файлы начинаются с id_rsa? Я ожидаю, что произойдет ssh-copy-idсбой с сообщением об ошибке, как вы его называете, так как он ожидает файл, заканчивающийся на .pub. Поскольку твое заканчивается .bakэтим, вероятно, будет использовать id_rsa.pub.bak.pub.
Ню
@nlu - у меня есть id_rsa, который я скопировал, перетаскивая файл с помощью ftp notepad. Также есть id_rsa.bak, который я создал с помощью nano и вставил содержимое мышью из notepad ++, но похоже, что он сделал тот же текст, но как-то 2 столбца. А также у меня есть id_rsa.pub.bak, который также сделан с помощью nano. На самом деле он имеет 3 строки, но оригинал имеет все в одной строке. Не знаю, имеет ли это значение. Но, как мы видим, я не получил сообщение об ошибке с именами файлов.
Дариус.В
1
Оно делает. Смотрите здесь, например: snailbook.com/faq/publickey-userauth.auto.html («Если вы используете текстовый редактор, позаботьтесь о том, чтобы он не прерывал строки в этом файле».).
Ню
Вопрос закрыт, потому что они думают, что это не система в бизнес-среде, но я решал проблему бизнес-среды.
Darius.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 на «да» на сервере, на который я хочу войти, и я могу подключиться с помощью putty, используя пароль, но ssh-copy-id по-прежнему не запрашивает пароль и просто пишет Permission denied (publickey). ?
Darius.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чтобы добавить ваш ключ вручную.
Oli
источник
5

Нашел проблему наконец.

На самом деле мне не нужно было копировать открытый ключ. Один и тот же открытый ключ для обоих секретных ключей - с парольной фразой и без парольной фразы. Я думал, что у меня есть закрытый ключ без ключевой фразы, но на самом деле я не сделал. У меня был только .ppk без пароля. Это было мисс общение. Поэтому коллега сделал закрытый ключ без ключевой фразы, и теперь я могу войти в систему, используя ssh без ключевой фразы. Я читал, что иметь без пароля плохо, но коллега говорит, что все в порядке. Мне нужно без ключевой фразы, потому что мне нужно запустить сценарий оболочки при перезагрузке - я хочу запустить autossh при перезагрузке компьютера.

Таким образом, решение на этот раз - если вы хотите войти без парольной фразы - проверьте, действительно ли ваш закрытый ключ без парольной фразы.

Darius.V
источник