SSH cannot use private key when creating docker image

I am having trouble checking the private git repository hosted on GitHub during the build of the Docker image. SSH error in verbose version mode:

OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying options for * debug1: Connecting to github.com [192.30.252.130] port 22. debug1: Connection established. debug1: permanently_set_uid: 0/0 debug1: identity file /root/.ssh/id_rsa type -1 debug1: identity file /root/.ssh/id_rsa-cert type -1 debug1: identity file /root/.ssh/id_dsa type -1 debug1: identity file /root/.ssh/id_dsa-cert type -1 debug1: identity file /root/.ssh/id_ecdsa type -1 debug1: identity file /root/.ssh/id_ecdsa-cert type -1 debug1: identity file /root/.ssh/id_ed25519 type -1 debug1: identity file /root/.ssh/id_ed25519-cert type -1 debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2 debug1: Remote protocol version 2.0, remote software version libssh-0.6.0 debug1: no match: libssh-0.6.0 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr hmac-sha1 none debug1: kex: client->server aes128-ctr hmac-sha1 none debug1: sending SSH2_MSG_KEX_ECDH_INIT debug1: expecting SSH2_MSG_KEX_ECDH_REPLY debug1: Server host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 debug1: read_passphrase: can't open /dev/tty: No such device or address Host key verification failed. 

The device /dev/tty seems to be present:

 total 4 drwxr-xr-x 4 root root 340 Jul 22 17:12 . drwxr-xr-x 130 root root 4096 Jul 22 17:12 .. lrwxrwxrwx 1 root root 13 Jul 22 17:12 fd -> /proc/self/fd crw-rw-rw- 1 root root 1, 7 Jul 22 17:12 full c--------- 1 root root 10, 229 Jul 22 17:12 fuse lrwxrwxrwx 1 root root 11 Jul 22 17:12 kcore -> /proc/kcore crw-rw-rw- 1 root root 1, 3 Jul 22 17:12 null lrwxrwxrwx 1 root root 8 Jul 22 17:12 ptmx -> pts/ptmx drwxr-xr-x 2 root root 0 Jul 22 17:12 pts crw-rw-rw- 1 root root 1, 8 Jul 22 17:12 random drwxrwxrwt 2 root root 40 Jul 22 17:12 shm lrwxrwxrwx 1 root root 15 Jul 22 17:12 stderr -> /proc/self/fd/2 lrwxrwxrwx 1 root root 15 Jul 22 17:12 stdin -> /proc/self/fd/0 lrwxrwxrwx 1 root root 15 Jul 22 17:12 stdout -> /proc/self/fd/1 crw-rw-rw- 1 root root 5, 0 Jul 22 17:12 tty crw-rw-rw- 1 root root 1, 9 Jul 22 17:12 urandom crw-rw-rw- 1 root root 1, 5 Jul 22 17:12 zero 

Here is a stripped-down version of my Dockerfile illustrating my test:

 FROM ubuntu:trusty ADD . /my_app ADD ./config/ssh/docker_ssh_key /root/.ssh/id_rsa RUN ls -al /dev RUN ssh -t -t -v git@github.com CMD bundle exec thin -p $PORT -R config.ru start 

I tested the assembly and know that the key works. I can access the git repository just fine if I create an image without RUN commands and run a container with an interactive shell.

I found several other questions with similar error messages. But they went missing /dev/tty , which seems to be wrong. Any ideas?

+7
git docker ssh openssh
source share
1 answer

You need to accept the Github host key. Use ssh-keyscan :

 ssh-keyscan -t rsa github.com 2>&1 >> /root/.ssh/known_hosts 
+7
source share

All Articles