В настоящее время я пытаюсь добавить ключ ssh к своим экземплярам эластичного beanstalk с помощью команд .ebextensions.
Ключи, которые я сохранил, находятся в моем коде приложения, и я пытаюсь скопировать их в корневую папку .ssh, чтобы я мог получить к ним доступ при выполнении клонирования git + ssh позже.
вот пример файла конфигурации в моей папке .ebextensions
packages:
yum:
git: []
container_commands:
01-move-ssh-keys:
command: "cp .ssh/* ~root/.ssh/; chmod 400 ~root/.ssh/tca_read_rsa; chmod 400 ~root/.ssh/tca_read_rsa.pub; chmod 644 ~root/.ssh/known_hosts;"
02-add-ssh-keys:
command: "ssh-add ~root/.ssh/tca_read_rsa"
проблема в том, что я получаю сообщение об ошибке при попытке клонировать репо
Host key verification failed.
Я пробовал много способов добавить хост в файл known_hosts, но ни один из них не работал!
Команда, выполняющая клонирование, - это npm install, поскольку репо указывает на модуль узла.
Я добавил это в свои ebextensions. Это было то, что я использовал для подключения к фиксации кода. Мне нужно было указать пользователя и игнорировать проверку ключа хоста. Надеюсь, это поможет любому, кто зайдет ...
commands:
add_ssh_config:
command: printf "Host git-codecommit.*.amazonaws.com\r\n StrictHostKeyChecking no\r\n User <name-of-user>\r\n IdentityFile ~/.ssh/<name-of-key>.pem" > /home/ec2-user/.ssh/config"
Проверка ключа хоста означает, что сам хост не может быть проверен. Когда вы впервые подключаетесь к хосту с помощью ssh, возникает вопрос по ssh. Это проверка ключа хоста.
The authenticity of host 'blah.blah.blah (10.10.10.10)' can't be established.
RSA key fingerprint is a4:d9:a4:d9:a4:d9a4:d9:a4:d9a4:d9a4:d9a4:d9a4:d9a4:d9.
Are you sure you want to continue connecting (yes/no)?
Чтобы безопасно передать, что вы могли бы использовать ssh-keyscan <repo-host>
локально и создайте known_hosts
файл с выходом вместо этого.
Итак, для GitHub это будет
$ ssh-keyscan github.com
# github.com:22 SSH-2.0-babeld-f43b814b
# github.com:22 SSH-2.0-babeld-f43b814b
# github.com:22 SSH-2.0-babeld-f43b814b
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
Итак, ebextension будет выглядеть примерно так:
packages:
yum:
git: []
container_commands:
01-move-ssh-keys:
command: "cp .ssh/* ~root/.ssh/; chmod 400 ~root/.ssh/tca_read_rsa; chmod 400 ~root/.ssh/tca_read_rsa.pub; chmod 644 ~root/.ssh/known_hosts;"
02-add-ssh-keys:
command: "ssh-add ~root/.ssh/tca_read_rsa"
03-add-known-hosts:
command: "echo 'github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==' > ~root/.ssh/known_hosts"
04-fix-perm:
command: "chmod 400 ~root/.ssh/known_hosts"