簡體   English   中英

docker image-centos 7>找不到ssh服務

[英]docker image - centos 7 > ssh service not found

我在ubuntu機器上安裝了docker image-centos 7。 但是找不到ssh服務。 因此我無法運行此服務。

[root@990e92224a82 /]# yum install openssh-server openssh-clients
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirror.dhakacom.com
 * extras: mirror.dhakacom.com
 * updates: mirror.dhakacom.com
Package openssh-server-6.6.1p1-31.el7.x86_64 already installed and latest version

Package openssh-clients-6.6.1p1-31.el7.x86_64 already installed and latest version
Nothing to do
[root@990e92224a82 /]# ss            
ssh          ssh-agent    ssh-keygen   sshd         ssltap       
ssh-add      ssh-copy-id  ssh-keyscan  sshd-keygen  

如何遠程登錄Docker鏡像?

您必須在Dockerfile上執行以下說明。

RUN yum install -y sudo wget telnet openssh-server vim git ncurses-term
RUN useradd your_account

RUN mkdir -p /home/your_account/.ssh && chown -R your_account   /home/your_account/.ssh/ 

# Create known_hosts
RUN touch /home/your_account/.ssh/known_hosts


COPY files/authorized_keys /home/your_account/.ssh/
COPY files/config          /home/your_account/.ssh/
COPY files/pam.d/sshd      /etc/pam.d/sshd
RUN touch /home/your_account/.ssh/environment
RUN chown -R your_account /home/your_account/.ssh
RUN chmod 400 -R  /home/your_account/.ssh/*
RUN chmod 700 -R  /home/your_account/.ssh/known_hosts
RUN chmod 700  /home/your_account/.ssh/environment


# Enable sshd
COPY files/sshd_config /etc/ssh/
RUN ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa 

# Add a account into sudoers and this account doesn't need to type his password
COPY files/sudoers /etc/
COPY files/start.sh /root/

我必須刪除文件/etc/pam.d/sshd上的“ pam_nologin.so”,因為當我將openssh-server的版本升級到openssh-server-6.6.1p1-31.el7時,pam_nologin.so將不允許遠程即使文件/ etc / nologin不存在,也可以為任何用戶登錄。

start.sh

#!/bin/bash
/usr/sbin/sshd -E /tmp/sshd.log

啟動centos容器

  • 碼頭工人運行-d -t -p $ {sshPort):22 --name $ {containerName)$ {imageName)/ bin / bash
  • 泊塢窗exec -d $ {containerName)bash -c“ sh /root/start.sh”

登錄容器

  • ssh $(Docker ip)$(sshPort)

在擴展到@puritys

您可以改為在Dockerfile中執行此操作

文件中的最后一個:

 ENTRYPOINT /usr/sbin/sshd -E /tmp/sshd.log && /bin/bash

然后,您只需要運行:

 docker run -d -p -t $(sshPort):22 --name $(containerName) $(imageName) /bin/bash

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM