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