docker是一款輕量級的虛擬化解決方案,提供了一個輕量級、可移植的容器,用于在不同的環境中運行應用程序。docker的使用已經趨于普及,為了方便運維工作,我們需要將容器內的操作系統連接到外部網絡,這篇文章就介紹一下在docker centos容器安裝ssh的方式。
一、拷貝ssh文件
首先需要在本地主機里生成ssh密鑰對。在本地主機上打開終端輸入以下命令:
ssh-keygen -t rsa
接著會看到以下系統提示:
Generating public/private rsa key pair. Enter file in which to save the key (/home/user/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:
這里需要注意以下幾點:
- Enter file in which to save the key,這個地方的文件存放路徑和文件名可以按需修改,如果改動了則需要在后面的命令中指定具體路徑。
- Enter passphrase ,在這里輸入密碼,如果你打算在本地主機或者其他地方通過SSH連接Docker容器,那么需要輸入一個預設密碼,不設置也行。
以上操作完成后,可以在用戶主目錄下找到如下圖所示的SSH密鑰對:
~/.ssh/id_rsa // 私鑰,需要保密 ~/.ssh/id_rsa.pub // 公鑰,可以放心公開
接著我們需要拷貝公鑰到Docker容器內部,在終端輸入以下命令:
docker cp ~/.ssh/id_rsa.pub container_id:/
注意這里的container_id:是你的容器ID。
二、安裝SSH包
完成密鑰拷貝后,我們需要在Docker容器中安裝SSH包,這里以CentOS 7為例,在終端輸入以下命令:
docker exec -it container_id yum install -y openssh-server
安裝成功后,接下來需要配置SSH。
三、配置SSH
在終端輸入以下命令登錄到Docker容器中:
docker exec -it container_id /bin/bash
接著,在容器中執行以下命令來創建.ssh目錄:
mkdir -p ~/.ssh
然后我們拷貝剛剛在本地生成的公鑰到Docker容器中:
cat /id_rsa.pub >> ~/.ssh/authorized_keys
以上操作完成后,需要設置容器中SSH的配置文件,同樣在Docker容器中執行以下命令:
sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
以上命令將root用戶的SSH登錄方式指定為可以直接登錄,這樣我們就可以通過SSH連接到Docker容器中的CentOS系統。
四、啟動SSH服務
以上操作完成后,需要在Docker容器中啟動SSH服務,輸入以下命令:
/usr/sbin/sshd
SSH服務啟動成功后,我們就可以通過SSH工具連接到Docker容器中的CentOS系統了。
總結:
通過以上步驟,我們就可以輕松在Docker CentOS容器中安裝SSH,并從本地主機訪問該容器中的系統。這樣的做法很方便,可以幫助我們進行更加高效的運維工作。