1

я пытаюсь подключиться к своему облачному облаку Google, используя локальный Linux. Я сгенерировал ключи, используя документы

ssh-keygen -t rsa -f ~/.ssh/my-ssh-key -C [ИМЯ ПОЛЬЗОВАТЕЛЯ]

Затем поместите ключ публикации в метаданные. Но это не работает, я всегда получаю запрещенное соединение с помощью Permission denied (publickey). Также не работает соединение с веб-оболочкой. Со старыми ключами SSH на другой машине это работает.

У кого-нибудь есть идея, в чем может быть проблема?

С наилучшими пожеланиями, Алекс

2 ответа2

2

Если вы специально не указали это сделать иначе, SSH предлагает ~/.ssh/id_<type> (например, ~/.ssh/id_rsa) для аутентификации.

Вы создали ключ в нестандартном месте (в ~/.ssh, но с нестандартным именем файла).

Поскольку аутентификация с открытым ключом в целом работает для вас, первое, что я хотел бы проверить, это то, что SSH предлагает правильный ключ для аутентификации. Это можно проверить, запустив ssh с ключом -v чтобы включить один уровень подробного (отладочного) вывода. Среди сообщений вы должны увидеть что-то вроде:

debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/you/.ssh/something

Посмотрите, какие открытые ключи он предлагает. (У вас может быть несколько Offering ... public key строк открытого ключа для разных файлов ключей.) Если он не предлагает ваш вновь созданный ключ, то этот ключ никогда не будет кандидатом на аутентификацию.

Если ваш недавно созданный ключ не предлагается, попробуйте явно указать SSH, предложив его, добавив ключ -i . Например, ssh -i ~/.ssh/my-ssh-key -v username@hostname . Обратите внимание, что SSH добавит саму .pub к имени, где ему необходим доступ к открытому ключу, поэтому вы даете имя для файла закрытого ключа.

Если это сработает, вы можете отредактировать ваш ~/.ssh/config и указать SSH предложить этот ключ этому хосту. Например, вы можете добавить блок, как показано ниже. Не забудьте добавить его над любым блоком Host * который у вас может быть.

Host hostname
    User username
    IdentityFile ~/.ssh/my-ssh-key

Тогда вы сможете подключиться, используя только ssh hostname .

Смотрите man 1 ssh и man 5 ssh_config для более подробной информации.

0

Спасибо за Ваш ответ. Я думаю, что id сделал это так. Вот журнал, может быть, что-то не так, но я не могу его идентифицировать.

OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to ccc.ccc.cc [aaa.aaa.aaa.aa] port 22.
debug1: Connection established.
debug1: identity file /home/foo/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/foo/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/foo/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/foo/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/foo/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/foo/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/foo/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/foo/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.7p1 Debian-5+deb8u3
debug1: match: OpenSSH_6.7p1 Debian-5+deb8u3 pat OpenSSH* compat 0x04000000
debug1: Authenticating to sdev.meilon.de:22 as 'foo'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256@libssh.org
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:D8f511w+xDWBS2z8E212LT369D3og2J4CYRsmE1ETwM
debug1: Host 'sdev.meilon.de' is known and matches the ECDSA host key.
debug1: Found key in /home/foo/.ssh/known_hosts:1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/foo/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Offering RSA public key: foo@foo-x1
debug1: Authentications that can continue: publickey
debug1: Trying private key: /home/foo/.ssh/id_dsa
debug1: Trying private key: /home/foo/.ssh/id_ecdsa
debug1: Trying private key: /home/foo/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .