(centos7)建立支援ssh服務的docker映象
如果還沒有在這個網址註冊賬號的話,先註冊一個https://hub.docker.com/;賬號註冊成功後,然後在主機上(不是容器)新開一個終端,輸入以下資訊:
docker login
輸入相應的使用者名稱、密碼,然後會提示登入成功。
有時會提示未連線上,這是可能是因為沒有開啟doker
$ sudo service docker start //開啟Docker 服務
$ sudo chkconfig docker on //開機啟動
1、下載centos7的映象
docker pull centos7
2、檢視已有的映象,將看到有個名為docker.io/centos的映象
docker images
3、基於centos映象,建立一個名為centos7ssh的容器
docker run -it --name centos7ssh centos /bin/bash
4、進入容器後,升級並安裝ssh服務端和客戶端,服務端能讓其他主機遠端登入本機,客戶端能讓本機遠端登入其他主機
yum -y update
yum -y install passwd openssl openssh-server openssh-clients
5、建立 /var/run/sshd/目錄,要不然sshd服務啟動會報錯
mkdir /var/run/sshd/
6、編輯sshd的配置檔案/etc/ssh/sshd_config,將其中的UsePAM yes改為UsePAM no
可以進入sshd_config檔案中去修改,也可以使用命令:
sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config
7、建立公私金鑰,輸入命令後,直接按兩次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
8、完成上述幾步後,可以開啟ssh服務了
/usr/sbin/sshd -D &
此時使用命令ps -ef | grep sshd 便可以看到
輸入命令
yum -y install lsof
lsof -i:22 //如果在/etc/ssh/sshd_config檔案中將埠22修改了,那麼填寫你修改了的埠
9、修改root密碼
passwd
然後輸入設定的密碼
10、測試
a、登入其他主機
輸入命令ssh localhost,然後輸入之前設定的root密碼
上圖中可以看到已經登入到本機了,也就說容器中的主機擁有了ssh遠端登入其它主機的能力,當然你也可以登入其他主機。
要退出的話,輸入命令exit即可。
b、宿主機能登入本機(容器中的主機)
輸入命令vi /etc/hosts
得到容器中的主機的ip地址172.17.0.5(可能和你得到的不一樣)
然後在宿主機中開啟一個新的終端輸入命令
輸入剛剛設定的密碼,即可以ssh登入到容器中的主機了
11、配置ssh無密碼登入
ssh-keygen -t rsa
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
輸入完後,這時再輸入命令
ssh localhost
發現並不用在輸入命令了:)。
ssh無密碼登入可用hadoop叢集中master主節點無密碼登入從節點。