2016-01-26 10 views
1

Я исполнительские:Копирование SSH-ключи между хостами

# copy public key to other hosts 
for host in ec2-master.eu-west-1.compute.amazonaws.com \ 
ec2xxx.compute.amazonaws.com \ 
ec2xxx.compute.amazonaws.com; \ 
do ssh-copy-id -i ~/.ssh/id_rsa.pub $host; \ 
done 

Так я пытаюсь скопировать ключ я сгенерированный на ec2-master.eu-west-1.compute.amazonaws.com к другие серверы. Но я все еще получаю

/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed 
/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). 
The authenticity of host 'ec2xxx.eu-west-1.compute.amazonaws.com (10.0.xx.xx)' can't be established. 
ECDSA key fingerprint is 3a:63xx:a6:19:xx:23:d1:xx:06:22:xx:a0:b9:8c:xx:cf. 
Are you sure you want to continue connecting (yes/no)? 

Таким образом я получил разрешение отказано. Но я не знаю почему. Что я делаю не так?

+0

ввод 'yes' и что произошло? –

+0

Я ввел да. Но разрешение по-прежнему отрицается. Когда я попробую еще раз, он снова не попросит отпечаток ключа ECDSA, но все равно вернет разрешение, отклоненное –

ответ

0

Попробуйте изменить команду ssh-copy-id к:

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]$host 

(при условии, что вы используете Amazon Linux - использовать ubuntu как пользователь, если вы используете Ubuntu)

Обновление:

Я думаю, проблема может быть из-за того, что вы пытаетесь скопировать новый ключ на хост, который принимает только логины с использованием существующего ключа (паролей не разрешено).

я не мог получить эту работу с ssh-copy-id, но вы можете сделать это с помощью стандартной команды SSH:

cat ~/.ssh/id_rsa.pub | ssh -i AWS_key.pem [email protected]$host "cat - >> ~/.ssh/authorized_keys" 

Где AWS_key.pem является частной частью пары ключей, которая прилагается к AWS экземпляр при вы запустили его.

+0

. Я попробовал его с помощью моего пользователя centos и с помощью root. Но все тот же вопрос. Моя рекомендация попробовать этот цикл: https://docs.openshift.org/latest/install_config/install/prerequisites.html (в конце страницы) –

+0

user centos, потому что мой amazon ec2 имеет centos как OS –

+0

Я сделал не используйте .pem-ключ для ssh'n из-за этой проблемы. –

0

Я использую этот сценарий, и это работает для меня: сил ли вы попробовать это

for host in ${hosts[*]} 
do 
echo $host 
ssh-keyscan $host | tee -a ~/.ssh/known_hosts 
sshpass -p 'mypass' ssh-copy-id [email protected]$host 
done 
+0

Это действительно на AWS? Вопрос, связанный с aws, и я считаю, что AWS имеет некоторые проблемы с ssh и паролями в соответствии с другим ответом. – chomp