如何解决centos docker :libssh2 握手失败
我有两个应用程序在单独的 docker 容器上运行。 在一个容器中运行 OB-BAA(开源宽带论坛项目)。 在另一个容器中运行我的应用程序。我的用例是在我的应用程序和 OB-BAA 之间建立 ssh 连接。我在我的应用程序中使用 libssh2 来建立连接。 当我从 linux 服务器运行我的应用程序时,我能够连接 OB-BAA 容器。 但是当我尝试在单独的 centos docker 容器中运行我的应用程序时, 建立连接时 libssh2_session_handshake 失败,错误代码为 -8(LIBSSH2_ERROR_KEY_EXCHANGE_FAILURE)。 我不确定为什么在 docker 中运行时密钥交换失败。 我尝试了以下方法
- 通过 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 中要做的任何事情?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。