Docker容器中Python脚本SSH登录报错:找不到ssh命令
解决方案
问题根源是你使用的python:3.10.12-slim-bookworm轻量镜像默认未预装OpenSSH客户端,而pxssh库底层依赖系统的ssh命令,因此容器内找不到该命令导致报错。
只需在Dockerfile中添加安装openssh-client的步骤即可解决:
修改后的Dockerfile:
FROM python:3.10.12-slim-bookworm RUN apt-get update && \ apt-get install -y --no-install-recommends build-essential gcc openssh-client && \ rm -rf /var/lib/apt/lists/* # 清理apt缓存,减小镜像体积 WORKDIR /app RUN python3 -m venv /app/venv ENV PATH="/app/venv/bin:$PATH" RUN pip install --upgrade pip --no-cache ADD requirements.txt requirements.txt RUN pip3 install -r requirements.txt --no-cache ADD ./src ./src ENTRYPOINT ["python3", "src/connect.py"]
说明:
openssh-client包提供了系统级的ssh命令,满足pxssh的依赖需求- 添加
rm -rf /var/lib/apt/lists/*可以清理安装包缓存,避免镜像体积过大 - 合并多个
RUN指令,减少镜像分层,优化镜像构建效率
重新构建镜像并运行容器即可正常执行SSH登录操作。
内容的提问来源于stack exchange,提问作者yungcup
相关产品推荐
相关产品推荐

