Tag: ssh

为什么我不能在Docker中使用正确的ssh密钥克隆一个私人的git仓库?

我正在尝试使用ssh身份validation从docker容器内克隆到私有存储库。 我遵循这里提出的解决scheme。 为此,我创build了一个本地密钥 ssh-keygen -q -t rsa -N '' -f repo-key 并将公钥添加到github ssh密钥。 然后在Dockerfile中我添加了: RUN chmod 600 repo-key && \ echo "IdentityFile /selenium/repo-key" >> /etc/ssh/ssh_config && \ echo "StrictHostKeyChecking no" >> /etc/ssh/ssh_config 但是当我试图git clone一个存储库,我得到了错误信息 Permission denied (publickey,gssapi-keyex,gssapi-with-mic). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the […]

使用Docker Web服务器从本地PC连接到远程服务器

我的Docker-Container在我的服务器上。 通过SSH我可以从我的本地PC连接到服务器。 ssh user@RemoteServerIP -p 3360 从那里我可以通过SSH连接到Docker容器 ssh userRemoteServer@DockerContainerOnServerIP -p 22 Apache Webserver正在Docker-Container上运行。 我怎样才能访问我的本地计算机上的Web服务器?

从Docker返回ssh隧道

我试图设置回到我的服务器的SSH隧道(为了有权访问我的客户端设备没有白色的IPv4)。 然后,我想能够从服务器连接到我的客户端设备。 问题是,我不能使它在捆绑Server + HostMachine + Docker中工作。 我到目前为止所做的: 当我从主机创buildback-ssh-tunnel时,我可以build立从服务器到主机的连接。 没问题。 我用: ssh -f -T -N -o StrictHostKeyChecking=no \ -R *:"$port":localhost:"$portClient" "$usernameServer"@"$server" 但是,当我从Docker Container运行此脚本时,没有结果。 我上了服务器 ssh: connect to host localhost port 43500: Connection refused 我没有忘记暴露端口23(我在该端口上使用ssh),并在docker-compose设置中绑定23:23。 我试图用这个线程来设置sshd服务。 https://docs.docker.com/engine/examples/running_ssh_service/ 我只能从内部networking连接,但不能从服务器连接: ssh root@192.168.1.21 -p 23 [成功。 我收紧容器。] ssh hostuser@192.168.1.21 [成功。 我到达主机] PS我不确定是否需要在docker中运行的sshd能够通过反向SSH隧道连接。

我怎样才能清理通过SSH连接的多行Bunyan日志输出?

ssh -t -i ~/work/keys/somekey.pem ec2-user@xxxx 'docker logs –follow –tail 50 -t taggoeshere' | cut -c 32- | bunyan -o short 这适用于单线泊坞窗日志输出: 12:54:49.038 INFO xxxxxxxxxxx: Failed message, sending to S3 (event_id=no-event-id) 但是,一旦多线,它变得丑陋。 任何人都有一个方便的技巧来清理这个?

做一个真正的SSH进入docker集装箱

我正在尝试使用本指南: https://docs.docker.com/engine/examples/running_ssh_service/#run-a-test_sshd-container 做一个简单的SSH到一个正在运行的容器,首先尝试获取运行容器的IP地址: $ sudo docker inspect 4b928aca09ae "NetworkSettings": { "Bridge": "", "SandboxID": "74ce28dd93a6fa6158ebc3f4ec73f1dba74ddbfc183f4ebf9cca77ced2571174", "HairpinMode": false, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "Ports": { "22/tcp": [ { "HostIp": "0.0.0.0", "HostPort": "32768" } ] }, "SandboxKey": "/var/run/docker/netns/74ce28dd93a6", "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "EndpointID": "5927380d426ce9d5684dc17982c7f01af38d850218aa476d6ed8f457c8a39165", "Gateway": "172.17.0.1", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "172.17.0.8", "IPPrefixLen": 16, "IPv6Gateway": "", "MacAddress": "02:42:ac:11:00:08", "Networks": […]

在Docker教程中,localhost拒绝访问端口

我目前正在开始在我的大学提供的Linux VM上使用Docker。 要开始使用docker我正在做他们的教程( https://docs.docker.com/get-started/part2/#run-the-app )。 在创build这些文件之后,本教程将使用以下命令:docker run -p 4000:80 <name of container> 这应该容纳http:// localhost:4000上的容器,因为端口80被映射到4000.但不幸的是,当我去本地主机,这显示: 此网站不可用。 本地主机拒绝连接。 谢谢您的帮助!

Jenkins:在Docker容器中克隆私有存储库

我知道在这里已经有很多关于这个话题的问题了,我尝试了几乎所有的解决scheme,但是我现在处于无法工作的状态(我想要的方式是)。 问题 我有Jenkins中的docker容器,在这个docker容器中,我尝试克隆一个私有存储库。 为此,我需要将我的公共Jenkins密钥添加到我的Git存储库,并且我的泊坞窗容器需要知道这个SSH密钥。 我目前的工作解决scheme 我已经能够通过在我的Jenkinsfile执行以下操作来完成此Jenkinsfile : docker.image('php_jenkins_test').inside('–env COMPOSER_HOME=$WORKSPACE/.composer -v /etc/passwd:/etc/passwd:ro -v /home/jenkins/.ssh:/home/jenkins/.ssh:ro') { sshagent(['jenkins-ssh-publickey']) { sh "./test/run-tests.sh" } } 我挂载我的etc/passwd和/home/jenkins/.ssh作为只读卷,原因如下: Jenkins Docker插件作为Jenkins用户运行。 这个用户的UID和GID在我的Docker容器中是不知道的。 所以我不得不挂载/etc/passwd 。 当从Git仓库中取出时,我的known_hosts容器中需要知道我的known_hosts (和我的键?)。 由于/etc/passwd将jenkins用户映射到/home/jenkins ,所以我必须在我的客户机上安装Jenkins的SSH目录。 sshagent命令设置了SSH套接字,以便我的密钥可以在我的容器中访问(纠正我,如果我错了,我是相当新的jenkins和docker)。 就像我说的:这已经起作用了。 通过这个设置,我可以在Jenkins中的Docker容器中克隆私有的git仓库。 那么问题是什么呢? 我发现/ /home/jenkins/.ssh有点危险。 我把它挂载为只读,但我在一个拥有70多个开发者的组织中工作,如果其中一个以我的代码为例,并删除:ro ,他们很可能会搞垮Jenkins的.ssh -folder和this非常非常糟糕 所以我正在寻找一种方法克隆私人存储库,而无需挂载.ssh夹。 毕竟,这不是什么sshagent插件是什么? 我到目前为止所尝试过的 由于我的docker容器挂载了/etc/passwd它会在某个时间点查找/home/jenkins -folder。 由于sshagent会照顾我想要的key,所以我只需要关心known_hosts -file。 所以我在我的Dockerfile中尝试了以下内容: RUN mkdir -p /home/jenkins/.ssh RUN chmod 700 /home/jenkins/.ssh […]

尽pipe存在SSH证书,Git克隆仍然不能在Docker内部工作

我试图克隆一个存储库到一台机器的图像,我成功地能够使用SSH来克隆Docker版本之外的存储库。 但是,每次我尝试克隆存储库时,都会被拒绝,原因如下: Cloning into 'my-repo'… Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 这是我的Dockerfile: FROM ubuntu as my-repo ARG GIT_SSH_KEY ARG GIT_SSH_PUBLIC_KEY ARG KNOWN_HOSTS RUN apt-get update RUN apt-get install -y git ssh # populate id_rsa files, populate known_hosts and […]

使用docker apache映像在windows 10机器中创build的公钥

我正在开发一个Windows 10机器(公司的政策:()我使用docker,创build一个Apache图像本地开发,因为该网站是Linux。我已经创build了一个SSH密钥在本地的Windows机器上如果我使用的Git在docker上的/ var / www文件夹中,如何使用我的公钥从git存储库中取出和推送?

通过ssh使用SQL脚本失败,但不能直接在主机上启动

我configuration了一个Jenkins Job,我的Pipeline如下所示: stage ('Preparing SQL Database'){ steps{ //Starting MYSQL Image sh '(sudo sshpass -p "PASSWORD" ssh -o StrictHostKeyChecking=no user@$host "sudo docker run –name nameofthecontainer -p 13306:3306 -d mysql:mysql")' sh '(sudo sshpass -p "PASSWORD" ssh -o StrictHostKeyChecking=no user@host "/opt/docker/dockerdeployment/databasescript.sh")' } 我的databasescript.sh看起来像这样(只需导入一个SQL-DUMP): sudo docker exec -i nameofthecontainer /usr/bin/mysql -u $MYSQLUSER -pPassword $MYSQLOPTIONS $MYSQLDB -e "DROP DATABASE IF […]