红联Linux门户
Linux帮助

Docker安装SSH【Ubuntu、CentOS】

发布时间:2016-06-16 15:42:23来源:linux网站作者:molaifeng

Ubuntu环境下:
拉取最新的Ubuntu 
docker pull ubuntu:latest 

启动 
docker run -it ubuntu:latest /bin/bash 

更新apt-get 
apt-get update 

安装ssh、netstat 
apt-get install -y openssh-server net-tools 

配置ssh 
mkdir /root/.ssh 
touch /root/.ssh/authorized_keys 
在宿主机子上执行ssh-keygen -t rsa,敲三次回车,把/root/.ssh/id_rsa.pub里的内容拷到容器内authorized_keys中去 

创建脚本 
vim /root/run.sh 
#!/bin/bash 
/usr/sbin/sshd -D 
保存退出 
chmod +x /root/run.sh
退出镜像 
exit 

保存镜像【创建镜像】 
docker commit 07a4a6c467e2 sshd:ubuntu 

使用镜像 
docker run -p 10022:22 -d sshd:ubuntu /root/run.sh 

从宿主机子登录[上文中,已经把id_rsa.pub放入了容器authorized_keys中] 
ssh 192.168.199.209 -p 10022 


CentOS环境下:
拉取最新的Centos 
docker pull centos:latest 

启动 
docker run -it centos:latest /bin/bash 

安装passwd,openssl,openssh-server 
yum install -y passwd openssl openssh-server 

配置ssh 
mkdir /root/.ssh 
touch /root/.ssh/authorized_keys 
在宿主机子上执行ssh-keygen -t rsa,敲三次回车,把/root/.ssh/id_rsa.pub里的内容拷到容器内authorized_keys中去 

创建脚本 
vim /root/run.sh 
#!/bin/bash 
/usr/sbin/sshd -D 
保存退出 
chmod +x /root/run.sh 

启动sshd 
/usr/sbin/sshd 
这一步,若报错,如 
Could not load host key: /etc/ssh/ssh_host_rsa_key 
则使用如下名令 
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key 【出现交互窗口,都按回车】 
再次执行,便是启动了 
这时,找出sshd进程pid【ps aux | grep sshd】,再kill掉 

修改 /etc/ssh/sshd_config 配置信息 
UsePAM yes 改为 UsePAM no  
UsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no 
sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config 
sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config 

退出镜像 
exit 

保存镜像【创建镜像】 
docker commit 07a4a6c467e2 sshd:centos 

使用镜像 
docker run -p 10122:22 -d sshd:centos /root/run.sh 

从宿主机子登录[上文中,已经把id_rsa.pub放入了容器authorized_keys中] 
ssh 192.168.199.209 -p 10122 


最后,从上文中应该可以看出,其实创建Docker镜像,可以用Dockerfile,也可以直接docker commit。


本文永久更新地址:http://www.linuxdiyf.com/linux/21575.html