You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Podman容器配置SSH认证?权限控制及exec命令可用性咨询

解决方案

1. 可以在容器内配置SSH并创建专属用户限制访问

完全可以通过以下步骤实现:

  • 进入容器创建专属用户
    先通过podman exec进入容器,创建一个专属用户(比如叫container_user):

    podman exec -it your_container_name bash
    useradd -m container_user
    passwd container_user  # 设置密码,或者后续用密钥认证
    
  • 安装并配置SSH服务
    在容器内安装OpenSSH服务器(Debian/Ubuntu用以下命令,RHEL/CentOS替换为yum install openssh-server):

    apt update && apt install -y openssh-server
    

    修改SSH配置文件/etc/ssh/sshd_config,收紧访问权限:

    # 禁用root登录
    PermitRootLogin no
    # 仅允许专属用户访问
    AllowUsers container_user
    # 禁用密码登录(可选,密钥认证更安全)
    PasswordAuthentication no
    
  • 配置SSH密钥认证(推荐)
    在宿主机生成密钥对(一路回车即可),再将公钥复制到容器内用户的授权列表:

    # 宿主机生成密钥
    ssh-keygen -t ed25519
    # 复制公钥到容器
    podman cp ~/.ssh/id_ed25519.pub your_container_name:/home/container_user/.ssh/authorized_keys
    # 修正权限(SSH对文件权限要求严格)
    podman exec your_container_name bash -c "chown container_user:container_user /home/container_user/.ssh/authorized_keys && chmod 600 /home/container_user/.ssh/authorized_keys && chmod 700 /home/container_user/.ssh"
    
  • 启动SSH服务并配置端口映射
    在容器内启动SSH服务:

    service ssh start
    

    如果需要从宿主机外部访问,要映射容器SSH端口(比如宿主机2222端口映射到容器22端口)。若容器已运行,先提交为新镜像再重启:

    # 停止容器
    podman stop your_container_name
    # 提交为带SSH的新镜像
    podman commit your_container_name your_ssh_image
    # 重启容器并映射端口
    podman run -d -p 2222:22 --name your_container_name your_ssh_image
    

完成后,只有持有对应私钥的container_user能通过SSH访问容器,服务器上其他用户无权限登录。

2. 配置SSH认证后仍可使用podman exec访问容器

是的,完全可以继续使用podman exec命令。podman exec是直接通过Podman的容器运行时(runc/crun)进入容器,和容器内的SSH服务相互独立。只要你在宿主机上拥有该容器的操作权限(比如是创建容器的用户,或具备sudo权限),就能正常执行podman exec进入容器,不受容器内SSH配置的限制。

内容的提问来源于stack exchange,提问作者Divya Naidu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 03:01:17