Когда вы передаете ssh настройку user@host
, она разделит эту строку на последнюю@
и использует первую часть (с @
s, если они присутствуют ), в качестве имени пользователя.
Таким образом, эквивалентным способом указать это в вашем .ssh/config
является:
Host server
HostName crappysshproxy.sub.domain
User myuser@privilegeduser@server.sub.domain
У меня есть работающее решение. Будем признательны за обратную связь.
Создайте такой 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.