2014-07-22 29 views
7

Ho problemi a controllare un repository git privato ospitato su GitHub durante la creazione di un'immagine Docker. L'errore da SSH in modalità dettagliata è:Impossibile SSH utilizzando la chiave privata durante la creazione dell'immagine Docker

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. 

Il dispositivo /dev/tty sembra essere presente:

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 

Ecco una versione ridotta del mio Dockerfile illustrare la mia prova:

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 [email protected] 

CMD bundle exec thin -p $PORT -R config.ru start 

Ho testato la build e so che la chiave funziona. Posso accedere al repository git bene se costruisco l'immagine senza i comandi RUN e avvio un contenitore con una shell interattiva.

Ho trovato altre domande con messaggi di errore simili. Ma sono per mancanza /dev/tty che non sembra essere il caso qui. Qualche idea?

+0

Ha la chiave privata (su entrambi i client o server) hanno una passphrase? Se è così, magari provare un test per vedere se l'utilizzo di una chiave privata non crittografata causa lo stesso problema. Non è l'impostazione più sicura, ma potrebbe aiutarti a isolare il problema. – phylae

risposta

7

È necessario accettare la chiave dell'host Github. Utilizzare ssh-keyscan:

+3

Grazie! Alla fine ho capito che era il prompt in arrivo ad accettare la chiave host. Accettandolo manualmente sopprime questo prompt e SSH continua. –

+0

Grazie. Necessario realizzare git clone in una finestra mobile del contenitore senza copiare ~/.ssh/know_hosts. –

+0

Puoi anche disabilitare la verifica dei tasti: http://askubuntu.com/questions/123072/ssh-automatically-accept-keys – Ben

Problemi correlati