docker中安装配置ssh服务

一、安装ssh

1、创建容器
docker run -itd -v /c/Users:/root/build -h myssh --name myssh --net mynetwork --ip 172.18.0.2 centos:jdk8 /bin/bash
2、升级yum并安装ssh服务端和客户端
yum -y update
yum -y install passwd openssl openssh-server openssh-clients
3、创建 /var/run/sshd/目录,要不然sshd服务启动会报错
mkdir /var/run/sshd/
4、修改/etc/ssh/sshd_config
UsePAM yes改为UsePAM no
vim /etc/ssh/sshd_config
5、保存成镜像
docker commit -a "axh " -m “centos7 with jdk ssh installed” myssh centos:ssh

二、配置ssh服务

1、创建镜像容器
docker run -itd -v /c/Users:/root/build -h master --name master --net mynetwork --ip 172.18.0.2 centos:ssh /bin/bash
docker run -itd -v /c/Users:/root/build -h slave1 --name slave1 --net mynetwork --ip 172.18.0.3 centos:ssh /bin/bash
docker run -itd -v /c/Users:/root/build -h slave2 --name slave2 --net mynetwork --ip 172.18.0.4 centos:ssh /bin/bash
2、分别运行三个容器
docker attach master
docker attach slave1
docker attach slave2
3、如果遇到错误:
docker : Error response from daemon:cgroups:cannot find cgroup mount destination:unknown.
解决方案: 进入docker虚拟机,先执行如下命令,再新建容器:
sudo mkdir /sys/fs/cgroup/systemd
sudo mount –t cgroup –o none,name=systemd cgroup /sys/fs/cgroup/systemd
4、创建公私密钥,输入命令后,直接按两次enter键确认
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
5、开启ssh服务
/usr/sbin/sshd -D &
ps -ef | grep sshd查看服务进程
6、修改root密码
passwd
然后输入设置的密码
7、测试, 在本机( master) 上登录 ssh. 成功的话,就说明ssh服务已开.
ssh localhost
输入密码后,可以通过ssh登录本机(master)
8、配置ssh无密码登录
先退出 ssh客户端
ssh-keygen -t rsa
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
9、输入完后,这时再输入命令
ssh localhost
不用输入密码即可登录.
注意:每次退出容器后,容器都将关闭ssh服务,开启服务:/usr/sbin/sshd -D &

三、配置其它机器的 ssh服务,然后可互相访问

1、将slave1,slave2中生成的公钥重命名后用scp命令发到master上.
cp id_rsa.pub authorized_keys_slave1
scp authorized_keys_slave1 [email protected]:/root/.ssh
cp id_rsa.pub authorized_keys_slave2
scp authorized_keys_slave1 [email protected]:/root/.ssh
2、在master节点中将master,slave1,slave2的公钥信息保存
把三个节点的公钥信息保存到authorized_key文件中
cat authorized_keys_master >> authorized_keys 命令
cat authorized_keys_slave1 >> authorized_keys
cat authorized_keys_slave2 >> authorized_keys
3、在master节点中把这个authorized_keys发到slave1,slave2中.
scp authorized_keys [email protected]:/root/.ssh
scp authorized_keys [email protected]:/root/.ssh
4、在三台机器中使用如下设置authorized_keys读写权限
chmod 400 authorized_keys
5、测试ssh免密码登录是否生效
ssh [email protected]
6、最后保存成三个镜像.
docker commit –a “ybk” –m “centos7 with jdk8 ssh configured” mastercentos:ssh_master
docker commit –a “ybk” –m “centos7 with jdk8 ssh configured” slave1 centos:ssh_slave1
docker commit –a “ybk” –m “centos7 with jdk8 ssh configured” slave2 centos:ssh_slave2

你可能感兴趣的:(docker)