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登录方式指定为可以直接登录,这样我们就可以通
.........................................................