У меня есть несколько SSH-серверов, к которым я хочу подключиться, доступ к которым возможен только через (разные) сети OpenVPN.
Теперь мой вопрос: у меня есть для каждой сети свой набор сертификатов и разные конфигурации (* .crt, * .key, * .ovpn). Поскольку мои серверы можно перемещать из одной сети в другую (часто дважды или чаще в день), мне было интересно, есть ли простая оболочка для ssh / vpn, которая позволяет мне вызывать:
ssh server1@network.com -ovpn "ovpnfile" -cert "cert.crt"
Так что мне нужно только каждый раз менять имя сервера. Эта оболочка должна автоматически туннелировать мое ssh-соединение через openvpn и разрывать соединение, когда я закрываю ssh-соединение.
Это возможно?
Предпосылки:
#!/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