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,并从本地主机访问该容器中的系统。这样的做法很方便,可以帮助我们进行更加高效的运维工作。