2014-11-27 2 views
0

Этот вопрос имеет ответ раньше, но это для окон. Но теперь я в Linux.Невозможно подключиться к экземпляру Compute Engine через SSH в linux

Я перепутал много. Пожалуйста, помогите мне решить эту проблему.

Я создал SSH пару используя ssh-keygen команду, то я скопировал и вставил id_rsa.pub в vminstaceSSH Keys, а затем сохраняются. Я выпустил ниже команду, но это не будет

gcloud compute --project "project001" ssh --zone "europe-west1-b" "instance-3" 

Над командой создает два файла google_compute_engine и google_compute_engine.pub Тогда ошибка:

Permission denied (publickey,gssapi-keyex,gssapi-with-mic). 
+0

Попробуйте переименовать id_rsa.pub в google_compute_engine.pub и посмотрите, будет ли это работать – George

ответ

0

Немного фона: Google Compute Engine поддерживает список открытых ключей в метаданных каждого проекта. Вы можете увидеть их, перейдя в https://console.developers.google.com и навигации по

Compute > Compute Engine > Metadata > SSH KEYS. 

Кроме GCE попыток, чтобы убедиться, что каждый из ваших ВМ показывает эти ключи в ~/.ssh/authorized_keys.

Для этого часть gcloud попытается создать и зарегистрировать новый ключ при вызове gcloud ssh, а пара ключей google_compute_engine, google_compute_engine.pub не существует.

Похоже, что вручную отредактировав файл authorized_keys, этот процесс вышел из строя.

Чтобы вернуться в хорошем состоянии знать, идти к https://console.developers.google.com, перейдите к

Compute > Compute Engine > VM instances 

затем нажмите на SSH в столбце Connect ваш экземпляр. Это запустит SSH в качестве браузера pluggin и будет иметь побочный эффект повторной синхронизации файла authorized_keys. После этого вы должны быть в состоянии ssh в свой экземпляр, как обычно, используя gcloud compute ssh.

В общем, хорошо, кстати, использовать другие ключи ssh с виртуальными машинами GCE, но вы должны сделать это, добавив ключи к метаданным проекта и разрешив вам распространение GCE.

1

С веб-входа в SSH терминал, редактировать sshd_config сделать пароль athentication чтобы да сохранить файл и перезагрузить SSH один раз, затем войдите с вашего компьютера с помощью любого клиента SSH ...

3

Вы добавили свой открытый ключ SSH (id_rsa. pub) в метаданные экземпляра, а команда gcloud добавила другой открытый ключ (google_compute_engine.pub) к метаданным проекта.

Однако метаданные экземпляра переопределяют метаданные проекта, поэтому вы пытаетесь использовать SSH с использованием неавторизованного ключа.

Поэтому я предлагаю четыре различные решения для Вашего случая:

1- Использование стандартного клиента SSH:

ssh -i $HOME/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no EXTERNAL_IP_ADDRESS 

2- Добавление ключа google_compute_engine.pub к метаданным экземпляра и SSH в используя команду gcloud.

3- Удалить ключи SSH из метаданных экземпляра и SSH в экземпляр, запускающий команду gcloud.

4- SSH from the browser.

Надеюсь, это поможет.

+0

Это тоже помогло. Также вы можете поместить настройки из решения 1 в '~/.ssh/config', чтобы вы могли просто выполнять' ssh myinstance' каждый раз, как предложено [здесь] (http://blog.javabien.net/2014/03/13/подключить к а-вычислительном-двигатель-непосредственно-с-SSH /) –