Я пытаюсь скопировать свой открытый ключ SSH на свой VPS, чтобы иметь возможность войти с помощью ssh
.
Однако, когда я ввожу команду:
ssh-copy-id me@myserver
Я получаю это сообщение об ошибке
/usr/local/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/local/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Permission denied (publickey).
Кто-нибудь знает, как это исправить? У меня Mac.
решение1
Как уже предложил Камило, вы можете вручную добавить правильный открытый ключ SSH на удаленном сервере.
В моем случае эта же ошибка произошла, когда программа SSH попыталась использовать другой файл идентификации, чем определенный при использовании ssh-copy-id, или не смогла просто найти определенный закрытый ключ / файл идентификации. Вы можете наблюдать, что делает программа SSH при выполнении команды ssh, добавив к ней -v:
ssh -v username@your-host-ip-or-domain
Затем вы просто берете на локальной машине любой открытый ключ, из которого программа SSH пробует закрытый ключ, например (на Mac/Linux) ключ по умолчанию:
cat ~/.ssh/id_rsa.pub
... и добавьте его в файл authorized_keys пульта дистанционного управления в:
~/.ssh/authorized_keys
Другое, в моем случае даже лучшее решение, было добавить пользовательский хост в мой локальный файл конфигурации ssh. На моем Mac это:
~/.ssh/config
Здесь вы можете добавить, например, что-то вроде этого:
Host mynewserver
HostName some.IP.number.or.domain
Port 20000 #if custom port is used and not the default 22
User the_root
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_for_my_new_server
Затем вам просто нужно выполнить:
ssh mynewserver
...и вуаля
решение2
У меня была та же проблема, мне помогло то, что я установил ее вручную, по этой ссылке вы можете найти, как это сделать.Ввод вручную. Таким образом, я смог подключиться через ssh даже при использовании пары ключей. Когда я настраивал его, файл .ssh/authorized_keys содержал другой ключ, указывающий на исходную машину, поэтому я переопределяю эту информацию на информацию, содержащуюся в /.ssh/id_rsa.pub исходной машины