Как использовать один и тот же ключ s sh на нескольких машинах? - PullRequest
1 голос
/ 26 мая 2020

У меня есть частный репозиторий Github, к которому я хочу получить доступ с двух разных Linux машин, используя один и тот же набор s sh ключей

Для первой машины я следовал инструкциям Github для генерации ключей S SH и добавил полученный ключ publi c в Github. Этот клиент работает нормально. Я загрузил как свой закрытый, так и publi c ключ в GitHub gists, чтобы легко получить его на втором клиенте

На втором компьютере я загрузил закрытый ключ и publi c ключ в необходимый каталог и дал соответствующий разрешения.

wget -O /root/.ssh/id_rsa.pub URL(RAW)
wget -O /root/.ssh/id_rsa URL(RAW)
chmod 700 /root/.ssh
chmod 600 /root/.ssh/id_rsa
chmod 600 /root/.ssh/id_rsa.pub

Я подумал, что это все, что мне нужно сделать, но когда я пытаюсь подключиться, я получаю следующую ошибку:

root@InstanceIDInHexa:~# ssh -T git@github.com                                 

The authenticity of host 'github.com (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is SHA256:RandomStringOfAlphaNumericCharacters.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,xxx.xxx.xxx.xxx' (RSA) to the list of known hosts.
Load key "/root/.ssh/id_rsa": invalid format
git@github.com: Permission denied (publickey).
root@InstanceIDInHexa:~#

Я также проверил содержимое и разрешения все файлы, и все выглядит хорошо

cat /root/.ssh/id_rsa 
cat /root/.ssh/id_rsa.pub
stat -c "%a" /root/.ssh
stat -c "%a" /root/.ssh/id_rsa
stat -c "%a" /root/.ssh/id_rsa.pub

Что-то мне здесь не хватает?

1 Ответ

0 голосов
/ 27 мая 2020

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

Однако, сказав это, если вы действительно хочет сделать это и игнорировать передовой опыт, вы можете скопировать файлы id_rsa и id_rsa.pub на другой компьютер, и это должно сработать. Однако в этом случае вы сгенерировали ключ на более новой машине, которая использует другой формат закрытого ключа или более современный алгоритм шифрования для его шифрования, чем на более старой машине. Шифрование по умолчанию для старых ключей RSA, формат PKCS # 1, оставляет желать лучшего и не очень безопасен.

Самый простой и простой способ решить эту проблему - создать новый Ed25519 пара ключей, потому что они всегда используют формат OpenS SH, и вы можете сделать это с помощью ssh-keygen -t ed25519. Если вы хотите скопировать его, это файлы ~/.ssh/id_ed25519 и ~/.ssh/id_ed25519.pub. Это также наиболее предпочтительный формат ключей в наши дни, но если вы используете что-то древнее, например CentOS 6, то он может не поддерживаться.

Если вы не хотите этого делать, вы можете преобразовать существующий закрытый ключ с использованием ssh-keygen -i и ssh-keygen -e для преобразования вашего закрытого ключа в соответствующий формат. Это нужно сделать на более новой машине, на которой был сгенерирован ключ. На странице руководства описаны поддерживаемые параметры и форматы. Вы можете использовать file на этом компьютере, чтобы узнать формат, в котором находится закрытый ключ.

...