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

无法获取GlassFish 4.1 docker容器的ssh访问权限,ssh,glassfish,docker,Ssh,Glassfish,Docker,我已经通过Dockerfile构建了GlassFish 4.1 docker容器,详情如下 然而,玻璃鱼本身工作得很好 *** 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

我已经通过Dockerfile构建了GlassFish 4.1 docker容器,详情如下

然而,玻璃鱼本身工作得很好

*** 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连接。

Docker的理念是每个容器有一个服务。一些基本映像使您很难启动服务,您可能已经体验到了这一点。我建议重新考虑一下您的方法,问问自己为什么需要ssh守护进程?也许你只是想用它?或者,您最好用vagrant构建一个虚拟机盒,里面塞满了满足您需要的多种服务?

由于image phusion/baseimage没有提供现成的sshd守护进程,我尝试了以下解决方法:-

[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\u sshd\u start.sh中创建



我相信运行上次黑客攻击的系统服务“sshd”会使端口22变得繁忙,这对我没有多大帮助。然而,它做到了。我声明,由于某些原因,该系统不能按原样启动SSHD。

docker run命令是什么样子的?除非您自己在容器上安装了sshd,否则它不会安装在大多数docker映像上。您可能还必须启动sshd服务。我通过phusion/baseimage构建的sshd应该启动,但它不应该。如果它解决了您的问题,您应该接受其中一个答案:)@BorisDerzhavets sshd只有在您删除容器中的此文件时才会启动运行rm-f/etc/service/sshd/down如果您坚持运行ssh,您可以尝试使用。有趣的是,运行ssh服务器的主要原因是允许使用ansible进行资源调配。非常感谢。docker exec container id exec/usr/sbin/sshd-D对meGreat很好,只要您知道您违反了流程,就可以了。您可能还想看看是的,我可以删除CMD(“/sbin/my_init”)从Dockerfile&然后运行docker运行您的\u IMAGE/sbin/my\u init--启用不安全密钥&&然后在Dockerfile中包含run/usr/sbin/enable\u unsecure\u密钥&&获取容器的不安全ssh登录。只是容器中的sshd守护进程应该启动并运行,否则上述所有操作都没有帮助。
#!/bin/bash
/usr/sbin/sshd > log &

and insert in Dockerfile:-

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