我有一台 freenas 服务器,其 ssh 端口已向互联网开放。我想访问 nas 所在网络内的服务器,因此我使用了如下 ssh 端口转发:ssh -N -L 8080:host:80 [email protected]
一开始运行似乎没问题,当我尝试使用该端口转发时,我收到以下消息:
channel 2: open failed: administratively prohibited: open failed
channel 2: open failed: administratively prohibited: open failed
channel 2: open failed: administratively prohibited: open failed
channel 2: open failed: administratively prohibited: open failed
我已经检查了选项AllowTcpForwarding
,PermitOpen
正如这里提到的:https://unix.stackexchange.com/a/58756/170512
这并没有解决我的问题。
答案1
问题似乎是我使用了 root 用户。
- ssh -N -L 8080:主机:80根@host ~ 不起作用
- ssh -N -L 8080:主机:80用户@host ~ 确实有效
我不确定这是否特定于 freenas、bsd 或 sshd。
答案2
在 TrueNAS 上
我的用户和root
对我来说都是有用的,但这可能是因为我全局启用了端口转发。
您可能需要在 3 个不同的 SSH 配置中更改几个设置:
grep -R AllowTcpForwarding /etc/
1./etc/sshd_config
- # GatewayPorts no
+ GatewayPorts yes
2./etc/local/ssh/sshd_config
- AllowTcpForwarding no
+ AllowTcpForwarding yes
3.https://truenas.local/ui/services/ssh
x Allow TCP Port Forwarding
4. 重启!
midclt call service.restart "ssh"
在 macOS 上
对于 macOS 和 SMB/CIFS 的情况,您无法连接到 localhost 上的 445,因此您必须通过非“localhost”和非“127.0.0.1”的地址来访问它,因此您必须在 hosts 文件中创建一个条目:
/etc/hosts
:
- 127.0.0.1 localhost
+ 127.0.0.1 localhost localnas
# ssh -nNT -L <local-lan>:<remote-lan> <wan-host>
ssh -nNT -L localnas:10445:127.0.0.1:445 [email protected]
Finder > 前往 > 连接服务器
smb://localnas:10445
注意:10445
是任意的,超过1024
就可以。
通过互联网
假设:
- 您将端口转发
22627
(WAN) 到22
(LAN / NAS) foobar
您有一个具有 smb 和 ssh 访问权限的用户
.ssh/config
应该包含如下内容:
Host remotenas
Hostname truenas.example.duckdns.org
User foobar
Port 22627
你可以像这样启动端口转发:
ssh -nNT -L localnas:10445:127.0.0.1:445 remotenas
你可以通过 Finder 进行连接,如下所示:
smb://foobar@localnas:10445