Подключение к удаленному серверу с помощью SSH с Mac
Я сгенерировал файл открытого ключа (id_rsa.pub) и файл закрытого ключа (id_rsa) и поместил их в папку ~/.ssh
По словам администратора сервера, он уже добавил "мой ключ" к серверу для доступа к нему.
Может ли кто-нибудь уточнить, пожалуйста:
когда он говорит, что он добавил мой "ключ". Это открытый ключ, который он добавил, или закрытый ключ? У меня сложилось впечатление, что закрытые ключи не должны распространяться, а должны быть отправлены только открытые ключи. Тогда почему администратор сервера попросил мой закрытый ключ?
Я попытался подключиться к серверу, используя файл ~/.ssh/config с записью для IdentityFile в качестве ключа id_rsa (закрытый ключ). Я получил ошибку следующим образом:
Permission denied (publickey).
Значит ли это, что я надеялся послать открытый ключ, а не закрытый ключ?Можно ли идентифицировать открытые ключи и закрытые ключи, просто взглянув на них? Они определенной длины?
2 ответа
- Администратору сервера нужен только открытый ключ.
- Если
StrictModes yes
в sshd_config включен, вы должны проверить разрешения файла id_rsa. - Когда вы создали ключ, вы указали длину. Это длина закрытого ключа в битах.
С ssh -v
опция, ssh печатает сообщения отладки как это:
$ ssh -v user@server
# ...
# debug1: identity file /Users/you/.ssh/id_rsa type -1
# debug1: identity file /Users/you/.ssh/id_rsa-cert type -1
# debug1: identity file /Users/you/.ssh/id_dsa type -1
# debug1: identity file /Users/you/.ssh/id_dsa-cert type -1
# ...
# debug1: Authentications that can continue: publickey
# debug1: Next authentication method: publickey
# debug1: Trying private key: /Users/you/.ssh/id_rsa
# debug1: Trying private key: /Users/you/.ssh/id_dsa
# debug1: No more authentication methods to try.
# Permission denied (publickey).
Надеюсь это поможет.
Это называется закрытый ключ по причине. Вам нужно дать ему свой открытый ключ, и он должен вставить.ssh, когда вы заходите на сервер, вам нужно использовать свой закрытый ключ в качестве аргумента для ssh.
Нет разницы в длине, это просто пара ключей. То, что один ключ шифрует другой, может расшифровать и наоборот. Вы просто назначаете одно общедоступным, а другое частным.