命令在命令行中运行时 Systemd SSH 隧道服务失败
Systemd SSH tunnel service failing while command works in command line
我一直在尝试设置 SSH 反向隧道 Systemd 服务,以自动将我的非 public IP 计算机暴露到互联网以进行 SSHing。我有两种不同的服务,一种指向我自己的服务器(另一台具有 public IP 的计算机)工作正常,另一种尝试使用 serveo.net(通过 ssh 客户端的免费 TCP 隧道服务)。我的服务在我自己的服务器上运行良好,但在 Serveo 上运行失败。
我的服务定义如下:
[Unit]
Description=Setup a remote tunnel to serveo.net
Wants=network-online.target
After=network-online.target
StartLimitIntervalSec=0
[Service]
User=ssh-tunnel
Group=ssh-tunnel
ExecStart=/usr/bin/ssh -T -o ServerAliveInterval=60 -i /var/lib/ssh-tunnel/id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ExitOnForwardFailure=yes -R myalias:58227:localhost:22 serveo.net
Restart=always
RestartSec=60
[Install]
WantedBy=multi-user.target
在终端中执行相同的命令时,它可以正常工作:
sudo -u ssh-tunnel -g ssh-tunnel /usr/bin/ssh -T -o ServerAliveInterval=60 -i /var/lib/ssh-tunnel/id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ExitOnForwardFailure=yes -R myalias:58227:localhost:22 serveo.net
我能看到我自己的服务器和 Serveo 之间唯一的行为差异是 Serveo 有一种交互式命令界面。
有没有人对 Systemd 服务有类似的问题?
Serveo 需要交互式 shell。您要添加
[服务]
StandardInput=tty-force
强制使用与 serveo 配置一起工作的 shell
我一直在尝试设置 SSH 反向隧道 Systemd 服务,以自动将我的非 public IP 计算机暴露到互联网以进行 SSHing。我有两种不同的服务,一种指向我自己的服务器(另一台具有 public IP 的计算机)工作正常,另一种尝试使用 serveo.net(通过 ssh 客户端的免费 TCP 隧道服务)。我的服务在我自己的服务器上运行良好,但在 Serveo 上运行失败。
我的服务定义如下:
[Unit]
Description=Setup a remote tunnel to serveo.net
Wants=network-online.target
After=network-online.target
StartLimitIntervalSec=0
[Service]
User=ssh-tunnel
Group=ssh-tunnel
ExecStart=/usr/bin/ssh -T -o ServerAliveInterval=60 -i /var/lib/ssh-tunnel/id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ExitOnForwardFailure=yes -R myalias:58227:localhost:22 serveo.net
Restart=always
RestartSec=60
[Install]
WantedBy=multi-user.target
在终端中执行相同的命令时,它可以正常工作:
sudo -u ssh-tunnel -g ssh-tunnel /usr/bin/ssh -T -o ServerAliveInterval=60 -i /var/lib/ssh-tunnel/id_rsa -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ExitOnForwardFailure=yes -R myalias:58227:localhost:22 serveo.net
我能看到我自己的服务器和 Serveo 之间唯一的行为差异是 Serveo 有一种交互式命令界面。
有没有人对 Systemd 服务有类似的问题?
Serveo 需要交互式 shell。您要添加
[服务] StandardInput=tty-force
强制使用与 serveo 配置一起工作的 shell