centos docker :libssh2 握手失败

时间:2021-04-07 11:48:47

标签: ssh ssh-keys docker-machine openssh libssh2

我有两个应用程序在单独的 docker 容器上运行。 在一个容器中运行 OB-BAA(开源宽带论坛项目)。 在另一个容器中运行我的应用程序。我的用例是在我的应用程序和 OB-BAA 之间建立 ssh 连接。我在我的应用程序中使用 libssh2 来建立连接。 当我从 linux 服务器运行我的应用程序时,我能够连接 OB-BAA 容器。 但是当我尝试在单独的 centos docker 容器中运行我的应用程序时, 建立连接时 libssh2_session_handshake 失败,错误代码为 -8(LIBSSH2_ERROR_KEY_EXCHANGE_FAILURE)。 我不确定为什么在 docker 中运行时密钥交换失败。 我尝试了以下方法

  1. 通过 ssh-keygen 再次生成 ssh-key。 2.将ssh文件夹从我的linux机器复制到docker。 3.通过在docker-compose文件中添加以下内容,在主机和docker之间共享ssh-agent

    environment:
      - SSH_AUTH_SOCK=/ssh-agent
    volumes:
      - ${SSH_AUTH_SOCK}:/ssh-agent

下面是我的 Dockerfile

  
FROM centos:7
EXPOSE 6653

RUN yum -y update && \
yum -y groupinstall 'Development Tools' && \
yum -y install vim mlocate flex flex-devel net-tools gdb screen && \
yum -y install autoconf libtool && \
yum -y install libssh2 libssh2-devel libxml2-devel openssl-devel readline-devel ncurses-devel && \
yum  -y install  initscripts

RUN mkdir -p /var/run/sshd
RUN yum -y update
RUN yum install -y openssh-server
RUN ssh-keygen -A
RUN ssh-keygen -t rsa

尝试在 docker 中运行 sshd

/usr/sbin/sshd -D

以上方法都不适合我。 我错过了在 docker 中要做的任何事情?

0 个答案:

没有答案