无法获取对GlassFish 4.1 docker容器的ssh访问权限

时间:2015-01-07 09:34:58

标签: ssh glassfish docker

我已经通过Dockerfile构建了GlassFish 4.1 docker容器,详情请参见此处 http://bderzhavets.blogspot.com/2015/01/dockerfile-for-glassfish-41.html

Glassfish本身运作良好,但是

*** Running /etc/my_init.d/00_regen_ssh_host_keys.sh...
No SSH host key available. Generating one...
Creating SSH2 RSA key; this may take some time ...
Creating SSH2 DSA key; this may take some time ...
Creating SSH2 ECDSA key; this may take some time ...
Creating SSH2 ED25519 key; this may take some time ...
invoke-rc.d: policy-rc.d denied execution of restart.

尝试ssh

ssh -v root@localhost -p 49160
OpenSSH_6.4, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Local version string SSH-2.0-OpenSSH_6.4
. . . . . . . .
ssh_exchange_identification: Connection closed by remote host

我不知道如何解决问题,显示在日志中并影响ssh连接。

2 个答案:

答案 0 :(得分:0)

Docker的理念是每个容器有一个服务。一些基本图像使您很难启动服务,这可能是您经历过的。我建议重新考虑你的方法并问自己为什么需要ssh守护进程?也许你只想使用docker exec?或者也许你最好通过构建一个带有流浪者的VM盒子,为你提供多种服务?

答案 1 :(得分:0)

由于图像错误/ baseimage没有为https://github.com/phusion/baseimage-docker提供准备好的sshd守护程序,我尝试了这里提到的解决方法https://github.com/phusion/baseimage-docker#login_ssh并得到: -

[root@junolxc ~]# docker run -d -p 49160:22 -p 49161:4848  -p 49162:8080 -p 49163:8181 boris/docker-glassfish41 --enable-insecure-key
693176ea6596bf33b880dc0f58250f47fe2e35ed95f44fcd80a62eeaa3fe17a4
2015/01/08 12:26:32 Error response from daemon: Cannot start container 693176ea6596bf33b880dc0f58250f47fe2e35ed95f44fcd80a62eeaa3fe17a4: exec: "--enable-insecure-key": executable file not found in $PATH

我刚刚通过添加到Dockerfile来攻击系统: -

RUN echo "/usr/sbin/sshd > log &" >> /etc/my_init.d/00_regen_ssh_host_keys.sh

另一个不接触00_regen_ssh_host_keys.sh的选项 在构建文件夹脚本01_sshd_start.sh

中创建
#!/bin/bash
/usr/sbin/sshd > log &

and insert in Dockerfile:-

ADD 01_sshd_start.sh /etc/my_init.d/

我相信端口22已经忙于系统服务“sshd”运行最后一次黑客攻击对我没什么帮助。但是,确实如此。我声明该系统由于某些原因没有按原样提供SSHD。