相关疑难解决方法(0)

用于设置临时SSH隧道的Bash脚本

在CYGWIN上,我想要一个BASH脚本:

  1. 创建到远程服务器的SSH隧道.
  2. 做一些使用隧道的本地工作.
  3. 然后关闭隧道.

"关闭部分"让我感到困惑.

目前,我有一个蹩脚的解决方案.在一个shell中,我运行以下命令来创建隧道.

# Create the tunnel - this works! It runs forever, until the shell is quit.
ssh -nNT -L 50000:localhost:3306 jm@sampledomain.com
Run Code Online (Sandbox Code Playgroud)

然后,在另一个shell窗口中,我做我的工作

# Do some MySQL stuff over local port 50000 (which goes to remote port 3306)
Run Code Online (Sandbox Code Playgroud)

最后,当我完成.我关闭第一个shell窗口来杀死隧道.

我想在一个脚本中完成所有这些:#create tunnel #do work#Kill tunnel

我如何跟踪隧道过程,所以我知道要杀死哪一个?

ssh bash

124
推荐指数
3
解决办法
6万
查看次数

docker-compose 与远程主机不使用 ssh

我正在使用 DigitalOcean,特别是 1-click Docker droplet。

Docker 在 droplet 上运行,socket 文件位于 droplet 上的 /var/run/docker.sock 。

我的机器上也本地安装了 docker 和 docker-compose。

我有一个在我的机器上本地运行的 docker-compose.yml。

我在 droplet 上有公钥,在我的本地机器上将私钥添加到 ssh-add。我的 ssh 密钥有密码。

我可以从我的本地机器 ssh 进入我的 DigitalOcean droplet,没有任何问题或密码提示。

端口 22 在液滴上打开。

编辑:两台机器上的 docker-compose > 1.28

鉴于这些事实,根据我阅读的所有教程和文档,这应该有效:

docker-compose -H "ssh://root@<my-digital-ocean-droplet-ip-here>" up -d
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我明白了:

ssh: connect to host <my-digital-ocean-droplet-ip-here> port 22: Connection timed out
ERROR: Couldn't connect to Docker daemon at http+docker://ssh - is it running?
Run Code Online (Sandbox Code Playgroud)

我想不通。我试过使用 docker 上下文,主机的环境变量,但没有任何效果。有什么我想念的吗?

编辑 - 还有一个细节。我没有看到任何迹象表明这很重要,但是我的公钥的末尾写着“azuread/”。同样,这不会干扰正常的 ssh。

编辑 - 这是 docker-compose.yml:

version: '3.9' …
Run Code Online (Sandbox Code Playgroud)

ssh docker digital-ocean docker-compose

5
推荐指数
1
解决办法
396
查看次数

标签 统计

ssh ×2

bash ×1

digital-ocean ×1

docker ×1

docker-compose ×1