Я установил докер (version 0.11.1-dev, build 02d20af/0.11.1
); кажется последней доступной в любом случае для CentOS 7 (yum update docker
говорит, что обновлений нет).
В соответствии с инструкциями по установке на сайте jhipster я вытащил текущий образ и запустил:
sudo docker run -v ~/jhipster:/jhipster -p 8080:8080 -p 9000:9000 -p 4022:22 -t --name jhipster jdubois/jhipster-docker
Образ работает нормально. Однако мне не удается подключиться через ssh. Если я запускаю ssh с подробной опцией:
ssh -vv -p 4022 jhipster@localhost
Я получил:
OpenSSH_6.4, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 51: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to localhost [::1] port 4022.
debug1: Connection established.
debug1: identity file /home/normunds/.ssh/id_rsa type 1
debug1: identity file /home/normunds/.ssh/id_rsa-cert type -1
debug1: identity file /home/normunds/.ssh/id_dsa type -1
debug1: identity file /home/normunds/.ssh/id_dsa-cert type -1
debug1: identity file /home/normunds/.ssh/id_ecdsa type -1
debug1: identity file /home/normunds/.ssh/id_ecdsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.4
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6p1 Ubuntu-2ubuntu1
debug1: match: OpenSSH_6.6p1 Ubuntu-2ubuntu1 pat OpenSSH*
debug2: fd 3 setting O_NONBLOCK
debug1: SSH2_MSG_KEXINIT sent
Connection closed by ::1
Если я попытаюсь подключиться к другому хосту Ubuntu, я получу ту же последовательность (кроме хоста, порта и версии OpenSSH), но вместо последней строки с закрытым соединением будет:
debug1: SSH2_MSG_KEXINIT received
и в конце концов он успешно соединяется.
Я пытался подключиться через localhost:4022, ip-of-container:22; с локальных или удаленных хостов с теми же результатами.
Таким образом, проблемы, похоже, связаны с контейнером или докером (или, в конечном итоге, с настройками Ubuntu в докере). Однако docker top jhipster
показывает мне, что sshd работает, и - да, трассировка явно показывает, что я достиг сервера ssh.
Любые идеи?
Отредактировано Я запустил образ докера, чтобы он вошел в командную строку, а затем запустил sshd в режиме отладки:
sudo docker run -v ~/projects:/jhipster -p 8080:8080 -p 9000:9000 -p 4022:22 -t -i --name jhipster jdubois/jhipster-docker /bin/bash
/usr/sbin/sshd -d
для дальнейшей отладки. При попытке подключения sshd возникает ошибка:
chroot(/var/run/sshd): операция не разрешена [preauth]