Назад | Перейти на главную страницу

SSH через выделенное соединение OpenVPN

У меня есть несколько SSH-серверов, к которым я хочу подключиться, доступ к которым возможен только через (разные) сети OpenVPN.

Теперь мой вопрос: у меня есть для каждой сети свой набор сертификатов и разные конфигурации (* .crt, * .key, * .ovpn). Поскольку мои серверы можно перемещать из одной сети в другую (часто дважды или чаще в день), мне было интересно, есть ли простая оболочка для ssh / vpn, которая позволяет мне вызывать:

 ssh server1@network.com -ovpn "ovpnfile" -cert "cert.crt"

Так что мне нужно только каждый раз менять имя сервера. Эта оболочка должна автоматически туннелировать мое ssh-соединение через openvpn и разрывать соединение, когда я закрываю ssh-соединение.

Это возможно?

Предпосылки:

  • Замените каждый «шлюз перенаправления» или «маршрут» в ваших файлах openvpn на «## SERVERROUTE ##»
  • Убедитесь, что вы можете разрешить имена хостов в IP-адреса

#!/bin/bash
TMPFILE=/tmp/._chrissvpn_$RANDOM

SSHSERVER=`echo $1| cut -d "@" -f 2`

SSHSERVIP=`host $SSHSERVER | head -n 1 | awk '{print $4}'`

cat $2 | sed 's/##SERVERROUTE/$SSHSERVIP/g' > $TMPFILE

openvpn --config $TMPFILE

if [ "$?" -eq "0" ]; then

    ssh $1

fi