Как запустить команду ssh при загрузке?

Когда вы передаете ssh настройку user@host, она разделит эту строку на последнюю@и использует первую часть (с @s, если они присутствуют ), в качестве имени пользователя.

Таким образом, эквивалентным способом указать это в вашем .ssh/configявляется:

Host server
  HostName crappysshproxy.sub.domain
  User myuser@privilegeduser@server.sub.domain
1
17.09.2021, 03:18
1 ответ

У меня есть работающее решение. Будем признательны за обратную связь.

Создайте такой ssh-скрипт в/usr/local/bin/autossh-tunnel

#!/bin/bash
ssh -N -R 11001:localhost:80 -o ServerAliveInterval=30 -i /home/pi/.ssh/id_rsa ubuntu@50.0.0.1
# not necessary, but you may want to use autossh instead: /usr/bin/autossh -M 0 -q -N -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 11001:localhost:80 -i /home/pi/.ssh/id_rsa ubuntu@50.0.0.1

И служебный файл в/etc/systemd/system/autossh-tunnel.service

[Unit]
Description=AutoSSH tunnel
After=network.target

[Service]
ExecStart=/usr/local/bin/autossh-tunnel
# Remove restarts if the command is just a one-off
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

И запустите sudo systemctl enable autossh-tunnel.service, чтобы он запускался при загрузке. (начните сейчас сsudo systemctl start autossh-tunnel.service)

Кроме того, рассмотрите возможность использования VPN вместо туннелей SSH.

1
17.09.2021, 15:42

Теги

Похожие вопросы