标签: ssh-tunneling

如何从远程服务器登录到我自己的 PC?

出于实验目的,我需要从同一域下的远程 PC 登录到我自己的 PC,即:大学网络。在这种情况下如何使用 SSH 进行远程登录?

例如,我在 X 大学的两台机器上有帐户,分别是me@machine_a.cs.x.came@machine_b.cs.x.ca,我的个人笔记本电脑帐户是nawshad@ubuntu。我需要提供哪些额外信息?

ssh ssh-tunneling

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

转发所有端口 SSH

我有一个关于 SSH/端口转发的问题。我还没有在任何地方找到解决方案,也不知道有没有。

我在家里的 NAT 盒后面有一台服务器。我有从我的 NAT 盒到我的服务器的端口转发,用于端口 22 上的 SSH。因此,我my_nat_public_ip:22在旅途中连接到它,它就像一个魅力。

现在我知道即使没有为它配置我的 NAT 盒,我也可以访问我服务器的任何端口。事实上,我可以像这样进行动态端口转发:

ssh -D 1080 user@my_nat_public_ip
Run Code Online (Sandbox Code Playgroud)

然后通过设置我的浏览器连接到我服务器的端口 any_port 或者使用 localhost:1080 作为 SOCKS 代理,并指向my_local_server_ip:any_port.

我想做什么,将是一个命令

ssh -D --local_alias=local_alias user@my_nat_public_ip
Run Code Online (Sandbox Code Playgroud)

如果我访问 local_alias:any_port 它会转发到 my_server:any_port

那可能吗?是否有任何 SSH 选项可以执行此操作?它非常简单,并且可以在不同的服务器上进行多个动态端口转发。

ssh ssh-tunneling port-forwarding tunneling

9
推荐指数
1
解决办法
1万
查看次数

在启动时自动建立反向 SSH 连接

我在 NAT 后面有一台 PC,它与我的 Digitalocean VPC 建立反向 SSH 连接。我利用这个反向 SSH 连接从家里登录到我的办公室 PC(我被授权这样做)并复制文件和做其他重要的事情。

虽然不常见,但我注意到我的办公室 PC 重新启动(由于电源故障等)并中断了它与我的 VPC 建立的反向 SSH 连接。在这种情况下,我无法从我的家用 PC 连接到我的办公室 PC。

我运行以下脚本,使反向连接 + 动态代理匿名我在办公室 PC 上生成的流量(因为我不需要共享浏览信息)。

autossh -CD 8080 -i digitalOcean -R 8081:localhost:22 root@IPofDigitalOceanPC
Run Code Online (Sandbox Code Playgroud)

重新启动后,我无法在办公室 PC 上再次运行 thsi 脚本,因为我不在那里。为了解决这个问题,我安装了以下 crontab。

注意:rev.sh文件包含上述行。证书“digitalOcean”和 rev.sh 位于Ubuntu home. 因此,当我./rev.sh在我的 Ubuntu 终端中执行时,我获得了一个动态代理,并且还可以访问 ym DigitalOcean 服务器。这种方法100%有效。

但是,当我使用以下方法安装 chrontab 时,我的 ubuntu PC 永远不会创建动态代理。我可以看到这一点,因为当我从谷歌浏览器检查这个代理时,它说代理拒绝连接。

这是我作为 root cronejobs 尝试过的 cronejobs。我也以普通用户的身份尝试过这些,但它们仍然不起作用。

@reboot bash /home/user/rev.sh 
@reboot /home/user/rev.sh 
@reboot cd /home/user && ./rev.sh
Run Code Online (Sandbox Code Playgroud)

然后我在当前时间前几分钟安装了一个 chrontab …

ssh cron openssh ssh-tunneling

9
推荐指数
2
解决办法
9275
查看次数

没有用户名或密码的通过 Socks 代理的 SSH

我有一个来自站点的 SOCKS 代理服务器列表。

我读过关于创建动态隧道的文章,ssh -D老实说我已经尝试过了。不幸的是,由于某种原因,我无法连接到列表中的任何代理服务器。

OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8k在 BackTrack 上使用。如果有人愿意提供帮助或指向对我有用的分步指南,我将不胜感激。

我想要实现的是通过 Machine 上的Assh 隧道从 Machine 连接B到 Machine C。假设 MachineC上的sshd正在侦听端口 21,而 MachineB代理正在侦听端口 1080。

补充问题:

我还想创建一个到socks 代理服务器的隧道,它允许我在firefox 中设置localhost:8080 作为代理,并允许我B使用机器BIP 地址从机器浏览网络。

ssh proxy ssh-tunneling socks backtrack

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

ssh隧道解释

我有一个关于 ssh 隧道的问题。我读过这篇文章

我想让 X 转发工作并在家里运行一些 X 应用程序并将它们显示在远程系统上:

 ssh -X -R 5555:localhost:22 user@remoteserver.com -N
Run Code Online (Sandbox Code Playgroud)

在远程:

 ssh -X -p 5555 user@192.168.1.2
Run Code Online (Sandbox Code Playgroud)

然后在家里:

 //configure sshd to listen on 5555
 ssh user@remoteserver.com
 //here run some app
Run Code Online (Sandbox Code Playgroud)

它应该工作吗?

ssh xforwarding ssh-tunneling x11

8
推荐指数
2
解决办法
1015
查看次数

使用主连接和端口转发解决两因素 SSH 身份验证?

问题1.0

我正在使用仅支持双因素身份验证(密钥对身份验证已禁用)的服务器。所以每次我的 SFTP 客户端想要上传一个文件时,它都会要求我提供一个令牌...... 3 分钟后,它变成了一个 not_very_nice UX。

解决方案 1.0

所以我了解了 SSH 多路复用,现在我可以手动打开一个主连接(从终端),所有其他 ssh 连接都可以在上面多路复用,如下所示:

$ ssh example_com_master
Verification code: (/me enters the token code)
Password: (/me enters my pass)
Welcome to Ubuntu 14.04 blah blah....
Last login: Wed Oct  1 11:24:15 2014 from 12.34.56.78
$
Run Code Online (Sandbox Code Playgroud)

然后,从另一个终端或另一个软件:

$ ssh my.example.com
Last login: Wed Oct  1 16:34:45 2014 from 12.34.56.78
$ 
Run Code Online (Sandbox Code Playgroud)

所以,任务完成,不再输入2FA令牌。没有密码,就此而言,SSH FTW!

~/.ssh/配置:

Host example_com_master
  HostName my.example.com
  User username
  PubkeyAuthentication no
  ControlMaster yes
  ControlPath ~/.ssh/sockets/example_com
  ControlPersist 10

Host my.example.com
  HostName …
Run Code Online (Sandbox Code Playgroud)

ssh ssh-tunneling

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

没有root的VPN服务器(滩头阵地)?

如何在没有 root 的主机上设置 VPN 服务器?

我有以下限制:

  • 在服务器 A 上,我没有 root。我只能在我的主目录中操作。特别是,我也无法创建tun设备。
  • 在客户端 B 上,我拥有完全的控制权,可以安装我想要的东西。
  • SSH 端口转发 (-L/-R) 和 SOCKS 代理 (-D) 有效,但在我的情况下无效。我客户端上的软件使用许多不同的端口,所以我倾向于使用 SOCKS,但它也在内核级别运行,所以我无法说服它tsocks使用代理。可行的一件事是在 B 上的 VM 中运行我的客户端软件,然后对整个 VM 进行袜子化 - 但我真的不想走那条路。
  • 我不需要特权端口,所以 A 上的非 root 应该没问题。
  • 它不一定是“真正的”VPN,但精神上类似的东西就足够了。我在 B 上的进程应该能够与 A(和连接的设备)上的进程通信,就像它们在一台机器上一样,而无需重写它们。

我不相信有一种优雅的方法可以做到这一点 -正确的方法是询问 A 的管理员,或者将 B 插入同一个网络 - 但现在我只是好奇这是否可以作为证明的概念。

ssh-tunneling vpn

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

通过 MySQL Workbench 的 SSH 隧道

我的新生产服务器只能通过 ssh 双隧道看到。我可以通过 Ubuntu 的 14.04 控制台访问targetHost,只需执行命令ssh targetHost而不是在远程机器上执行 mysql cli,但我想通过 gui Workbench 访问 MySQL db。如何在 Workbench 中配置连接来实现呢?

我的.ssh/config

Host targetHost,  firewallHost
    User username
    IdentityFile /home/michalszulc/.ssh/id_rsa

Host targetHost
    proxycommand ssh -W %h:%p firewallHost

Host firewallHost
    hostname firewallHost.example.com
    port 2201
    passwordauthentication no
    controlmaster auto
    controlpath ~/

Host targetHost
    Hostname 123.123.123.123
Run Code Online (Sandbox Code Playgroud)

ssh ssh-tunneling mysql mysql-connection

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

如何通过SSH执行命令并保持连接打开?

当我跑

FOO=$(ssh -L 40000:localhost:40000 root@1.2.3.4 cat /foo)
Run Code Online (Sandbox Code Playgroud)

我得到 的内容/foo,但随后断开连接。

我想要做的是以某种方式获取内容/foo并保持连接打开,以便端口 40000 仍然转发到同一台服务器。这可能吗?

你可能会问,为什么不像这样发出两个 ssh 连接

FOO=$(ssh root@1.2.3.4 cat /foo)
ssh -L 40000:localhost:40000 root@1.2.3.4 -f -N
Run Code Online (Sandbox Code Playgroud)

在我的情况下,我不能这样做的原因是 ip ( 1.2.3.4) 是一个负载均衡器,它将连接转发到多个随机后端。每次ssh到1.2.3.4不同的机器,/foo每台机器的内容都不一样。此外,我通过转发端口 (40000) 发送的数据取决于/foo. 如果我获取/foo机器 A 上的内容,然后通过端口 40000 将数据发送到机器 B,则无法正常工作。

ssh ssh-tunneling

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

一段时间内每个用户通过 SSH 传输的数据量

我有一个 Ubuntu 服务器,大约有 20 个用户,主要将其用于 SSH 隧道。

我想知道是否有任何方法可以确定每个用户在特定时间段(例如过去一周或一个月)传输的数据量。

ssh ssh-tunneling bandwidth traffic-shaping

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