在Docker容器中安装和配置SSH服务,可以通过以下步骤进行:
- 创建Dockerfile,用于构建SSH服务镜像:
dockerfile
FROM ubuntu:20.04
RUN apt update && apt install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:password' | chpasswd # 设置root密码
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config # 允许root登录
EXPOSE 22 # 暴露22端口
CMD ["/usr/sbin/sshd", "-D"] # 运行SSH服务
- 构建SSH服务镜像:
docker build -t mysshd .
- 运行SSH服务容器:
docker run -d -p 22:22 --name sshd mysshd
此命令将SSH服务镜像运行在后台,映射宿主机22端口,命名容器为sshd。
- 使用SSH连接到容器:
# root用户连接
ssh root@host -p 22
password
# 中继SSH连接到容器
ssh -o ProxyCommand="ssh -W %h:%p user@host" root@localhost -p 22
- 在容器中配置SSH密钥登录:
# 在宿主机上生成SSH密钥对
ssh-keygen -t rsa -b 4096
# 将公钥追加到容器的authorized_keys文件
docker cp id_rsa.pub sshd:/root/.ssh/authorized_keys
# 测试密钥登录
ssh root@host -i id_rsa -p 22