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

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

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

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

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

Теперь в этой статье: http: //www.thegeekstuff.com / 2008/11/3-step-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id /

Я пытаюсь скопировать открытый ключ на удаленный сервер. Думаю, мне нужно скопировать его на компьютер A.

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

Обновление

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

sudo /etc/init.d/ssh restart

Затем попробовал еще раз на машине C, чтобы скопировать на машину.

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

и все то же самое:

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

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

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

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

30
задан 22 April 2015 в 08:56
3 ответа

Наконец-то обнаружил проблему.

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

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

5
ответ дан 28 November 2019 в 19:59

Permission denied (publickey) - это удаленный SSH-сервер, говорящий: «Я принимаю только открытые ключи в качестве метода аутентификации, уходите».

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

  • Используя ssh-copy-id - это позволит вам указать другой ключ, если вы находитесь в процессе замены старого, например.
  • Отредактируйте удаленного пользователя ~ / .ssh / authorized_keys , чтобы добавить свой ключ вручную.
12
ответ дан 28 November 2019 в 19:59

Вам действительно нужно войти в систему, чтобы скопировать свой ключ , у вас нет доступа к удаленному компьютеру (недопустимый ключ и аутентификация по паролю отключены):

Повторно включите аутентификацию 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]

Повторите попытку входа, пароль не требуется.

Затем отключите аутентификацию по паролю.

25
ответ дан 28 November 2019 в 19:59

Теги

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