Появилась задача добираться к машине во внутренней сети за NAT (админу лень было пробрасывать порт).
Можно было бы поставить клиента OPENVPN но ключи итд.. да и скорость...
Решил попробывать иcпользовать ssh и пакет autossh.
схема такая -
1.2.2.1 - (внешний сервер со статическим адресом,куда будет коннектиться клиент за натом) порт ssh 1052
172.16.6.202 (внутренний сервер за натом с linux)
172.16.6.113 (внутренний сервер за натом c виндовз) порт 3389
0. устанавливаем autossh
apt-get install autossh
1. Создаем пользователя из под которого будет запускаться коннект (на 172.16.6.202)
useradd autouser
2. Создаем пару ключей
autouser@172.16.6.202 ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/autouser/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/autouser/.ssh/id_rsa.
Your public key has been saved in /home/autouser/.ssh/id_rsa.pub.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/autouser/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/autouser/.ssh/id_rsa.
Your public key has been saved in /home/autouser/.ssh/id_rsa.pub.
3. копируем открытый ключ на внешний сервер
ssh-copy-id -i /home/autouser/.ssh/id_rsa.pub "-p 1052 users@1.2.2.1"
users@1.2.2.1's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh -p '1052' 'users@1.2.2.1'"
and check to make sure that only the key(s) you wanted were added.
Проверяем:users@1.2.2.1's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh -p '1052' 'users@1.2.2.1'"
and check to make sure that only the key(s) you wanted were added.
sh -p '1052' 'users@1.2.2.1
если входит без пароля все норм:
пробуем запустить autossh
autossh -M 10942 -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /home/autouser/.ssh/id_rsa -R 6666:172.16.6.113:3389 users@1.2.2.1 -p 1052
порт 10942 управляющий
порт 6666 любой не занятый порт на сервере 1.2.2.1
Проверили заходит ? делаем автозапуск
touch /etc/systemd/system/autossh-tunnel.service
Вставляем следующее:
[Unit] Description=AutoSSH tunnel service After=network.target [Service] User=autouser Environment="AUTOSSH_GATETIME=0" ExecStart=/usr/bin/autossh -M 0 -q -N -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -o "PubkeyAuthentication=yes" -o "PasswordAuthentication=no" -i /home/autouser/.ssh/id_rsa -R 6666:172.16.6.113:3389 users@1.2.2.1 -p 1052 [Install] WantedBy=multi-user.target
systemctl daemon-reload
systemctl start autossh-tunnel.service
systemctl start autossh-tunnel.service
проверяем:
systemctl status autossh-tunnel.service
● autossh-tunnel.service - AutoSSH tunnel service
Loaded: loaded (/etc/systemd/system/autossh-tunnel.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2019-03-12 13:48:05 EET; 2min 48s ago
Main PID: 30531 (autossh)
CGroup: /system.slice/autossh-tunnel.service
● autossh-tunnel.service - AutoSSH tunnel service
Loaded: loaded (/etc/systemd/system/autossh-tunnel.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2019-03-12 13:48:05 EET; 2min 48s ago
Main PID: 30531 (autossh)
CGroup: /system.slice/autossh-tunnel.service
Добавляем в автозагрузку:
systemctl enable autossh-tunnel.service
Комментариев нет :
Отправить комментарий