有人能为我指出一个好的(一步一步)资源的方向,以便在引导时使用systemd设置带有autossh的反向ssh隧道?
我已经尽了最大努力使用我在网上找到的资源来做到这一点,并且已经成功地手动创建了反向ssh会话,但是我还没有设法用systemd来自动化它,这样我的“远程”系统就可以在不引起问题的情况下重新启动。
我试图使用这教程来建立一个持久的自动测试会话,但是当我运行sudo systemctl enable autossh.service时,我总是遇到这样的错误:update-rc.d: error: cannot find a LSB script for autossh。
任何帮助破译此错误或在Ubuntu20.04上创建持久的autossh会话都将不胜感激。
autossh.service文件:
[Unit]
Description=Establish persistent SSH tunnel
Requires=ssh.service
Wants=network-online.target
After=network-online.target
[Service]
User=user
Group=usergroup
Environment=AUTOSSH_POLL=60 AUTOSSH_FIRST_POLL=30 AUTOSSH_LOGFILE=/var/log/autossh.log AUTOSSH_LOGLEVEL=7 AUTOSSH_GATETIME=0
ExecStart=/usr/bin/autossh -i /root/.ssh/id_rsa -R 3010:localhost:22 -o 'StrictHostKeyChecking=no' -o 'UserKnownHostsFile=/dev/null' -o 'PasswordAuthentication=no' -o 'PubkeyAuthentication=yes' -o 'ServerAliveInterval 60' -o 'ServerAliveCountMax 3' -o 'BatchMode=yes' user@myddnsservice -p2016
RestartSec=6
Restart=always
[Install]
WantedBy=multi-user.target发布于 2021-02-16 11:38:14
这就是我所用的。
在远程机器上使用ssh-keygen创建隧道私钥/公钥。将提示您输入密码。您可以按Enter来忽略密码问题,但不建议这样做。这意味着远程计算机上的任何人都可以在不被询问密码的情况下连接到本地计算机(请参阅“使用带键的SSH”部分)。
将公钥安装在远程user@remote.hosts ..ssh/特准密钥文件中
通过手动尝试ssh命令来测试它,并确保反向隧道正常工作。
vi /etc/systemd/system/tunnel.service
[Unit]
Description=Maintain Tunnel
After=network.target
[Service]
User=localuser
ExecStart=/usr/bin/ssh -i ~localuser/.ssh/tunnel -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -gnNT -R 22222:localhost:22 remoteuser@remotehost vmstat 5
RestartSec=15
Restart=always
KillMode=mixed
[Install]
WantedBy=multi-user.target然后跑:
sudo systemctl daemon-reload
sudo systemctl enable tunnel
sudo systemctl start tunnelhttps://askubuntu.com/questions/1316798
复制相似问题