Облачный движок Google, сбой ssh ​​между двумя экземплярами centos7

Я установил 2 экземпляра Google Compute Engine, и я могу легко использовать SSH в обоих из них, используя ключ, созданный командой gcloud compute ssh. Но когда я пробую следующее ...

myself@try-master ~] ssh-keygen -q -t rsa -N "" -f ~/.ssh/id_rsa
myself@try-master ~] cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
myself@try-master ~] chmod 0600 ~/.ssh/authorized_keys
myself@try-master ~] ssh-copy-id -i ~/.ssh/id_rsa.pub myself@try-slave-1

... это не работает, и ssh-copy-id показывает следующее сообщение:

Permission denied (publickey,gssapi-keyex,gssapi-with-mic)

Если я скопирую закрытый и открытый ключ google_compute_engine в try-master и могу использовать его для входа в оба экземпляра, но я считаю неудовлетворительным перемещение закрытого ключа по сети. Я думаю, это как-то связано с этой темой:

Как это можно решить?

[1] https://cloud.google.com/compute/docs/instances#sshbetweeninstances < / а>


person MathiasOrtner    schedule 23.02.2015    source источник


Ответы (1)


  1. Использование образов CentOS7 и CentOs7 в качестве локального хоста:

    gcloud compute instances create try-master --image centos-7
    gcloud compute instances create try-slave-1 --image centos-7
    

Это можно решить, используя переадресацию аутентификации во время начальной настройки ключей SSH:

  1. Настройте пересылку аутентификации один раз на локальном компьютере (обратите внимание на флаг «-A»). Для начала нужно запустить:

    eval `ssh-agent -s`

    А потом

    ssh-add ~/.ssh/google_compute_engine
    gcloud compute ssh --ssh-flag="-A" try-master
    
  2. Выполните указанные выше действия (от keygen до ssh-copy-id) myself@try-master ~] ssh-keygen -q -t rsa -N "" -f ~/.ssh/id_rsa myself@try-master ~] cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys myself@try-master ~] chmod 0600 ~/.ssh/authorized_keys myself@try-master ~] ssh-copy-id -i ~/.ssh/id_rsa.pub myself@try-slave-1 myself@try-master ~] exit

  3. Снова войдите в try-master без перенаправления аутентификации SSH: gcloud compute ssh try-master myself@try-master ~] ssh myself@try-slave-1 myself@try-slave-1 ~]

Первоначальный подход не сработал, потому что экземпляры GCE по умолчанию разрешают аутентификацию только с открытым ключом. Таким образом, ssh-copy-id не может аутентифицироваться против try-slave для копирования нового открытого ключа, потому что в try-slave еще нет открытого ключа, настроенного в try-master.

Используя пересылку аутентификации, закрытый ключ с вашего локального компьютера пересылается с вашего локального компьютера на try-master, а оттуда на try-slave. Менеджер аккаунта GCE в try-slave получит открытый ключ из метаданных вашего проекта, и, таким образом, ssh-copy-id сможет скопировать работу.

person MathiasOrtner    schedule 23.02.2015
comment
Я повторно отправил ваш ответ в качестве ответа, чтобы закрыть этот вопрос. - person Martin Prikryl; 24.02.2015
comment
У меня все еще не получается ssh-copy-id -i ~/.ssh/id_rsa.pub name@instance /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,gssapi-keyex,gssapi-with-mic). - person gotmikhail; 27.03.2015
comment
Я только что проверил еще раз, все прошло хорошо .... Я редактирую ответ и заменяю eval $(ssh-agent) на eval `ssh-agent -s` - person MathiasOrtner; 22.09.2015