创建带sshd服务的docker image

时间:2022-04-25 16:48:46

参考:https://docs.docker.com/examples/running_ssh_service/

1.
创建一个空目录用于存放Dockerfile

mkdir -p
/home/thm/docker/test/new_image

vim Dockerfile

Dockerfile的内容为:

  FROM tang*0713/ubuntu_amd64:14.04
RUN apt-get update
RUN apt-get install -y openssh-server
#RUN mkdir /var/run/sshd
RUN sed -i 's/^PermitRootLogin/#PermitRootLogin/' /etc/ssh/sshd_config
RUN echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
RUN echo "root:root" | chpasswd
EXPOSE

2. build a image

docker build -t tang*0713/ubuntu_amd64_ssh .

3. run a container

docker run -d -p 2222:22 tang*0713/ubuntu_amd64_ssh /usr/sbin/sshd -D

4. 主机下ssh登陆docker容器

ssh root@localhost -p 2222

密码为:root

root@ubuntu:/home/thm/docker/test/new_image# ssh root@localhost -p
The authenticity of host '[localhost]:2222 ([127.0.0.1]:2222)' can't be established.
ECDSA key fingerprint is bd::3f:e4:e3:bd:b4:::fe:1b::eb::f3:.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[localhost]:2222' (ECDSA) to the list of known hosts.
root@localhost's password:
Welcome to Ubuntu 14.04 LTS (GNU/Linux 3.13.--generic x86_64) * Documentation: https://help.ubuntu.com/ The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law. root@db36812760ac:~#

成功。

若在ssh登陆时提示:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
bd::3f:e4:e3:bd:b4:::fe:1b::eb::f3:.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:
remove with: ssh-keygen -f "/root/.ssh/known_hosts" -R 172.17.0.2
ECDSA host key for 172.17.0.2 has changed and you have requested strict checking.
Host key verification failed.

rm $HOME/.ssh/known_hosts即可。