是的,我知道我在标题中写了“SSH shell”。
TL;DR:第一段,带有链接的那一段和带有错误信息的那一段是最重要的。
我家里有我的 Raspberry Pi,我可以通过互联网访问它,但只能通过 IPv6。我目前所在的位置没有 IPv6。
我可以通过首先登录到同时具有 IPv4 和 IPv6 的服务器然后从那里登录到我的 pi 来执行命令。但是,我在其上使用 SSH 不仅仅是在其上执行命令:
这些是按重要性递减的顺序。我想访问我的 git 存储库。
更多细节:
谷歌搜索解决方案带来了这个相当有前途的页面,它实际上适用于 git。我为我正在使用的 repos 设置了新的遥控器,只需将 pi 的域名替换为localhost:3333
.
但它看起来比这更有希望。它看起来像以上所有问题的解决方案。它开始起作用了!
SFTP 有效,但我无法确定通过 Deja Dup 进行的备份是否有效,因为我的连接速度太慢,但它尚未失败,并且某些原因导致网络流量,所以这很好,很有希望。
但是为什么我不能只是ssh localhost:3333
连接到我的笔记本电脑来在我的 pi 上获得一个外壳?该命令导致此错误消息:
ssh: Could not resolve hostname localhost:3333: Name or service not known
Run Code Online (Sandbox Code Playgroud)
我主要感兴趣的是为什么我不能以我期望的方式获得 shell。
您可能想要查看ssh
的ProxyCommand
配置,它允许它更无缝地工作,并且适用于外壳、SFTP、隧道以及您可能想要通过 ssh 代理的任何其他内容。
假设您有以下三个主机:
workstation.example.com
- 这是你正在物理上工作的机器proxy.example.com
- 这是您路由 SSH 流量的机器endpoint.example.com
- 这是您希望流量最终结束的地方在~/.ssh/config
on 中workstation
,添加以下内容:
Host endpoint
User EndpointUser # set this to the username on the destination host
HostName endpoint.example.com
ProxyCommand ssh username@proxy.example.com nc %h %p 2> /dev/null
Run Code Online (Sandbox Code Playgroud)
在proxy
主机上,确保nc
安装了 (netcat)。
然后,在 上workstation
,您可以ssh endpoint
或sftp endpoint
并且您将通过您的代理主机透明地代理到机器。
归档时间: |
|
查看次数: |
1605 次 |
最近记录: |