
У меня есть сеть из нескольких linux/unix-боксов (различные ubuntu, raspian и на OS-X-боксе), в которые я регулярно вхожу. Обычно я нахожусь на машине OSX и сгенерировал пару ключей, которая была предоставлена каждому из боксов, и я могу войти в каждый из них, используя эту пару ключей.
Проблема, с которой я столкнулся, заключается в попытке создать пару ключей для других устройств, когда мне нужно будет копировать файлы напрямую между этими устройствами, поскольку большую часть времени MBP подключен к Wi-Fi, а соединение слишком медленное для перемещения больших файлов.
Для простого примера, мой MBP — это компьютер A. Ubuntu №1 — это компьютер B, а Ubuntu №2 — это компьютер C.
Использование пар ключей:
A может войти в B
A может войти в C
Но B не может войти в C, а C не может войти в B.
Я получаю ошибку «открытый ключ». доступ запрещен (открытый ключ).
Везде, где я ищу информацию об этой ошибке, похоже, речь идет о случае, когда для входа в разные ящики используются несколько ключей.
Единственный способ, который я могу придумать, — это создать одну и ту же пару ключей и поместить на каждый компьютер как открытый, так и закрытый ключ, но мне кажется, что хранить их в одном месте небезопасно.
редактировать:
Вот что происходит более подробно (извините, мне следовало быть более подробным)
Из A (MBP) я вхожу в B (bbox), но не могу войти в C (sun) (из B).
Из A я могу войти в C, но не в B (из C).
madivad@bbox:~$ ssh sun
Permission denied (publickey).
Я тоже не могу отправить открытый ключ по той же причине:
madivad@bbox:~$ ssh-copy-id sun
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/madivad/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: WARNING: All keys were skipped because they already exist on the remote system.
(if you think this is a mistake, you may want to use -f option)
madivad@bbox:~$ ssh-copy-id -f sun
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/madivad/.ssh/id_rsa.pub"
Permission denied (publickey).
madivad@bbox:~$
Давайте сгенерируем его снова (что я и делал бесчисленное количество раз):
madivad@bbox:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/madivad/.ssh/id_rsa):
/home/madivad/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/madivad/.ssh/id_rsa.
Your public key has been saved in /home/madivad/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:<removed> madivad@bbox
The key's randomart image is:
+---[RSA 2048]----+
| So |
| beautiful it's |
| a shame to |
| remove it |
| (although |
| it's |
| probably not |
| required) |
+----[SHA256]-----+
madivad@bbox:~$ ssh-copy-id sun
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/madivad/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/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).
madivad@bbox:~$
Кажется, я хожу по кругу.
решение1
Я получаю ошибку «открытого ключа».
Учитывая вашу точность в сообщениях об ошибках, я могу лишь сказать, что вы где-то допустили ошибку при генерации или развертывании ключей.
Вам следует сгенерировать пару ключей на каждой машине, выполнив команду
ssh-keygen
Затем для каждой пары машин, для которой вы хотите использовать ключ на машине X для входа в машину Y, выполните следующую команду на машине X:
ssh-copy-id X