В настоящее время я пытаюсь использовать файл порядка файлов изображений * gitlab docker для подключения к производственному серверу и перезаписи моего кода в рабочей среде при развертывании. Хотя я могу sh с моего локального компьютера с предоставленным закрытым ключом, всякий раз, когда я пытаюсь скопировать закрытый ключ как переменную и подключиться, я постоянно получаю ошибку:
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
...
debug1: read_passphrase: can't open /dev/tty: No such device or address
Host key verification failed.
lost connection
Я подтвердил что адрес / dev / tty существует на обеих машинах и что мой .pem может быть прочитан соответствующим образом при копировании после запуска gitlab, я установил соответствующие разрешения с помощью chmod, а также пробовал несколько вариантов вызова сценария scp. В настоящее время я запускаю свое соединение в before_script моего файла gitlab.yml, чтобы избежать задержки создания изображений docker в моем файле, и соответствующая часть прилагается ниже.
РЕДАКТИРОВАТЬ: / У dev / tty также есть правильные разрешения, я просматривал предыдущие сообщения о переполнении стека, связанные с этой проблемой, и они либо не относились к проблеме, либо не были решением
image: docker:19.03.5
services:
- docker:19.03.1-dind
before_script:
- docker info
- apk update
- apk add --no-cache openssh
- touch $SSH_KEY_NAME
- echo "$SSH_KEY" > "./$SSH_KEY_NAME"
- chmod 700 $SSH_KEY_NAME
- ls -la /dev/tty
- scp -v -P 22 $SSH_KEY_NAME -i $SSH_KEY_NAME $PROD_USER@$SERVER_URL:.
Извиняюсь, если это кажется глупым, но у меня мало опыта в технической природе установки закрытого ключа с другой машины, в настоящее время я не уверен, нужно ли мне связывать закрытый ключ в моем модуле gitlab определенным образом c? Если возможно, что эхо не сохраняет .pem как закрытый ключ. Мой IP-вход для экземпляра aws установлен для всех траффиков c на порту 22, и копирование этого ключа и подключение с моего P C работает нормально. У бегуна проблемы. Спасибо за вашу помощь!