安装 openssh yum -y install openssh-server
启动 sshd 进程
[root@nginx-94711 opt] Could not load host key: /etc/ssh/ssh_host_rsa_key Could not load host key: /etc/ssh/ssh_host_ecdsa_key Could not load host key: /etc/ssh/ssh_host_ed25519_key sshd: no hostkeys available - - exiting.
会提示错误,dockerfile 文件需要这样定义
FROM centosWORKDIR /opt/COPY CentOS7-Base-163 .repo /etc/yum.repos.d/CentOS-Base.repoCOPY nginx /etc/init.d/nginxRUN yum -y update \ && yum -y install openssh-server openssl gcc gcc-c++ pcre-devel openssl-devel zlib-devel wget make perl vim tar curl rsync bzip2 iptables tcpdump less telnet net-tools lsof python-setuptools lsof sysstat cronie \ && wget -c -4 https://nginx.org/download/nginx-1 .13 .5 .tar.gz \ && wget -c -4 https://www.openssl.org/source/openssl-1 .0 .2 l.tar.gz \ && wget -c -4 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8 .41 .tar.gz \ && wget -c -4 http://zlib.net/zlib-1 .2 .11 .tar.gz \ && groupadd -r www && useradd -r -g www www \ && tar zxvf zlib-1 .2 .11 .tar.gz \ && cd zlib-1 .2 .11 \ && ./configure \ && make \ && make install \ && cd /opt \ && tar zxvf pcre-8 .41 .tar.gz \ && cd pcre-8 .41 \ && ./configure \ && make \ && make install \ && cd /opt \ && tar zxvf openssl-1 .0 .2 l.tar.gz \ && tar zxvf nginx-1 .13 .5 .tar.gz \ && cd nginx-1 .13 .5 \ && ./configure --prefix=/usr/local/nginx --user=www --group=www --with-pcre=/opt/pcre-8 .41 --with-http_ssl_module --with-zlib=/opt/zlib-1 .2 .11 --with-openssl=/opt/openssl-1 .0 .2 l --with-http_v2_module --with-http_ssl_module \ && make \ && make install \ && rm -rf /opt/* \ && mkdir -p /usr/local/nginx/ssl \ && mkdir -p /usr/local/nginx/conf/vhost \ && mkdir -p /var/log/wwwlogs/ \ && mkdir -p /www/ \ && ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' \ && ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' \ && ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' \ && ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N '' \ && echo "RSAAuthentication yes" >> /etc/ssh/sshd_config \ && echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config \ && sed -i "s/PasswordAuthentication yes/PasswordAuthentication no/g" /etc/ssh/sshd_config \ && sed -i "s/UsePAM yes/UsePAM no/g" /etc/ssh/sshd_config \ && yum clean all \ && mkdir /var/run/sshd \ && chmod +x /etc/init.d/nginx COPY ssl/* /usr/local/nginx/ssl/ COPY vhost/* /usr/local/nginx/conf/vhost/COPY nginx.conf /usr/local/nginx/conf/COPY ssh/* /root/.ssh/RUN rm -rf /root/*.cfgVOLUME ["/www","/var/log/wwwlogs"] EXPOSE 22 80 443 ENTRYPOINT /etc/init.d/nginx start && chown -R www:www /var/log/wwwlogs/ && /usr/sbin/sshd -D
主要是这一段用来定义 ssh 服务的相关配置,比如生成 sshd 公钥秘钥 配置 sshd_config
&& ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' \ && ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N '' \ && ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N '' \ && ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N '' \ && echo "RSAAuthentication yes" >> /etc/ssh/sshd_config \ && echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config \ && sed -i "s/PasswordAuthentication yes/PasswordAuthentication no/g" /etc/ssh/sshd_config \ && sed -i "s/UsePAM yes/UsePAM no/g" /etc/ssh/sshd_config \
如果希望能够 ssh 进去,还需要把对应的公钥复制进行
COPY ssh/id_rsa.pub /root/.ssh/
然后就可以远程了。
docker run -d -P --name web -v /www:/www -P --name log -v /wwwlogs:/var/log/wwwlogs -p 65423 :22 -p 80 :80 -p 443 :443 44 c
远程
➜ ~ ssh root@xxxx -p 65423 [root@80487e28cef4 ~]#
文章作者: 阿文
版权声明: 本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0 许可协议。转载请注明来自
阿文的博客 !