相关疑难解决方法(0)

通过中间机器转发 SSH 流量

SSH 隧道让我很困惑。我想知道我是否可以在 Linux 中做到这一点。

我有3台机器..

A. My local machine at home.
B. Machine at work that I can SSH into (middle man).
C. My desktop at work that I can only SSH into from machine B.
Run Code Online (Sandbox Code Playgroud)

所以我可以从 A -> B 和 B -> C 进行 SSH,但不能从 A -> C 进行 SSH。

有没有办法设置从 A 到 B 的 SSH 隧道,所以当我运行其他 SSH 命令时,它们只能在我的本地机器 A 上工作?我基本上是在尝试将 git repo 从工作克隆到家(并且我无法在机器 B 上安装 git)。

此外,一旦设置.. 我将如何取消设置?

ssh bash git command-line tunnel

117
推荐指数
5
解决办法
6万
查看次数

通过中间主机的 scp 文件

我可以访问 3 台机器,A、B 和 C。唯一可能的 (ssh) 连接是:

A -> B
B <-> C
Run Code Online (Sandbox Code Playgroud)

我需要从 A 到 C 获取文件,所以我可以将文件从 A scp 到 B,然后将它们从 B scp 到 C。但是,B 没有太多磁盘空间,所以这不是一个选项。有没有办法通过 B 从 A 到 C scp 文件?请注意,我在任何机器上都没有 root 访问权限,所以不要认为我可以设置任何持久隧道,但如果我错了,请纠正我!

scp

111
推荐指数
5
解决办法
11万
查看次数

如何通过中间机挂载远程SSHFS?隧道?

我想使用 SSHFS 挂载远程文件系统 (A),但有时我有 IP 地址,不允许访问。所以我的计划是通过该网络中的另一台机器 (B) 访问它。我是否需要在 B 上安装 A,然后在本地计算机上安装 B(和 A)?有没有更好的方法来做到这一点?

更新

只是为了澄清程序:

首先,我做一个隧道

ssh -f user@machineB -L MYPORT:machineA:22 -N
Run Code Online (Sandbox Code Playgroud)

然后我挂载远程文件系统

sshfs -p MYPORT user@127.0.0.1:/myremotepath /mylocalpath
Run Code Online (Sandbox Code Playgroud)

这是正确的吗?

完成后如何摧毁隧道?

ssh mount remote tunnel sshfs

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

WinSCP 隧道连接的 Linux 图形替代方案

是否有带有 GUI 的 Linux 或多平台软件允许您从 SSH 隧道后面的服务器浏览和下载文件(这是一个 winscp 示例)?

|client|----ssh----|gateway|-----ssh-----|target_host|
   |                                         |
   +------------WinSCP alternative-----------+
Run Code Online (Sandbox Code Playgroud)

更新

为了澄清,涉及3个系统。一个本地 ( client) 和 2 个远程:

  • 第一个,我称之为gateway可从互联网通过 ssh 访问。但它没有我想要的文件。
  • 第二个,我称之为target_host可以从gateway互联网访问,但不能直接从互联网访问

我想以图形方式浏览target_host,和我有这么的WinSCP,使我能够建立一个SSH隧道来完成gateway,然后连接到target_host

linux ssh tunnel

8
推荐指数
1
解决办法
1856
查看次数

登录时重定向 SSH,但 SFTP 不起作用

我正在尝试使用自动跳转盒为我们的用户设置 SSH 代理。用户登录并自动通过 SSH 连接到他的容器/虚拟机,效果非常好。遗憾的是,通过它建立隧道的 SFTP 却没有。我确信这与我的设置方式有关,因为它基本上只是管道术语返回而不是正确地进行隧道挖掘。

/etc/密码

redtest:x:1002:1002::/home/redtest:/usr/bin/redtest
Run Code Online (Sandbox Code Playgroud)

/usr/bin/redtest

#!/bin/bash
/usr/bin/ssh redtest -t -F ~/.ssh/config
Run Code Online (Sandbox Code Playgroud)

/home/redtest/.ssh/config

Host redtest
        HostName redtest1
        User root
        IdentityFile ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

设置这样的事情的正确方法是什么,或者这是否可能?登录与容器是一对一的。感谢正确方向的推动!

linux ssh proxy sftp

3
推荐指数
1
解决办法
1292
查看次数

将两个 SSH 连接中继在一起

我有三台机器:

  1. 我有物理访问权限 localhost
  2. 我想通过 ssh 进入host1. 但是,它位于运营商级 NAT 之后,因此我无法从 ssh 直接连接到它localhost
  3. relayhost设置为帮助我连接localhosthost1

我想SSH从每个localhosthost1relayhost,然后有relayhost中继从我的ssh连接localhosthost1

这样的回答表明,我可以创建一个通道relayhost使用ssh -L,如果我知道的URI或IP地址host1。但是,由于运营商级 NAT,我不知道。所以我可以想象一个像这样中继它的过程:

  1. host1ssh user@relayhost
  2. relayhost 正在监视这个连接,当它看到它说“我要创建一个从我的端口 9999 到这个连接的隧道”
  3. localhostssh 9999:relayhost

这是解决这个问题的正确方法吗?如何进行第 2 步?

ssh ssh-tunnel

2
推荐指数
1
解决办法
3923
查看次数

标签 统计

ssh ×5

tunnel ×3

linux ×2

bash ×1

command-line ×1

git ×1

mount ×1

proxy ×1

remote ×1

scp ×1

sftp ×1

ssh-tunnel ×1

sshfs ×1