参考:https://docs.docker.com/examples/running_ssh_service/
1. 创建一个空目录用于存放Dockerfile
mkdir -p /home/thm/docker/test/new_image
vim Dockerfile
Dockerfile的内容为:
FROM tanghuimin0713/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 22
2. build a image
docker build -t tanghuimin0713/ubuntu_amd64_ssh .
3. run a container
docker run -d -p 2222:22 tanghuimin0713/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 2222 The authenticity of host '[localhost]:2222 ([127.0.0.1]:2222)' can't be established. ECDSA key fingerprint is bd:41:3f:e4:e3:bd:b4:46:54:fe:1b:46:eb:60:f3:73. 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.0-32-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:41:3f:e4:e3:bd:b4:46:54:fe:1b:46:eb:60:f3:73. 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:5 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即可。