Задача: Нужна шпаргалка, как мне с домашней системы под управлением Ubuntu 18.04 Desktop ноутбука Lenovo E555 подключаться к моему vpn.ekzorchik.ru. Просто у меня множество удаленных систем которые я обслуживаю и вот вспомнить как же к ним настраивается подключение порой трудно вспомнить, а тут я как пример сделаю заметку с целью сделать ~/.bashrc где укажу алиасы подключения к VPS системам через приватный ключ SSH.

Предыстория, может день не задался, но когда под вечер приводил доступы к единому виду, что-то сразу не вспомнил как я подключаюсь, просто обычно я с работы через mRemoteNG (+Putty) подключаюсь, т.е. с Windows, а вот дома то у меня в качестве рабочей Ubuntu LTS, т.к. не так часто это делаю, то малость подзабыл.

Шаг №1: У меня доступ к vpn.ekzorchik.ru по SSH осуществляется следующими настройками SSH подключения:

ekzorchik@ekzorchik:~$ sudo nano /etc/ssh/sshd_config
Include /etc/ssh/sshd_config.d/*.conf
Port 33678
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
AuthorizedKeysFile /etc/ssh/authorized_keys
PermitEmptyPasswords no
KbdInteractiveAuthentication no
UsePAM yes
AllowTcpForwarding yes
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem       sftp    /usr/lib/openssh/sftp-server
AllowGroups sshauth

Шаг №2: Доступ брандмауэром неограничен явно указанными адресами:

ekzorchik@ekzorchik:~$ sudo firewall-cmd --zone=public --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client
  ports: 33678/tcp
  protocols:
  forward: yes
  masquerade: yes
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
ekzorchik@ekzorchik:~$

Шаг №3: а что если нужно с Ubuntu системы подключаться использую ключ (приватный ключ), как быть в этом случае?

задействую заметку: "Ключ PPK и на Windows и на Ubuntu системах"

к примеру, у меня есть Ubuntu 18.04 Server (Client), моя домашняя система.

Открываю через PuTTYGen - Load – выбираю ekzorchik@vpn.ekzorchik.ru_private_key.ppk (Приватный ключ), если защищен паролем вводим. После Conversions - Export OpenSSH key (force new file format) и сохраняю его как <имя_подключения@<имя_хоста>.pem, у меня это: W:\polygon\tips_key\ekzorchik@vpn.ekzorchik.ru_private_key_ubuntu1804.pem

копирую пересохраненный приватный ключ ekzorchik@vpn.ekzorchik.ru_private_key_ubuntu1804.pem на Ubuntu 18.04 Desktop любым способом которым сможете, к примеру: nautilus - smb://172.35.35.24/key (каталог C:\Key расшарен для всех)

С Ubuntu 18.04 Desktop обращаюсь через SMB к Windows системе

копирую данный приватный ключ в каталог ~/.ssh/

Шаг №4: Открываю консоль командной строки на Ubuntu 18.04 Desktop и набираю данные подключения:

ekzorchik@srv-ud1804a:~$ ssh -l ekzorchik vpn.ekzorchik.ru -p 33678 -i ~/.ssh/ekzorchik@vpn.ekzorchik.ru_private_key_ubuntu1804.pem
The authenticity of host '[vpn.ekzorchik.ru]:33678 ([185.240.103.236]:33678)' can't be established.
ECSDSA key fingerprint is SHA256:<key>.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[vpn.ekzorchik.ru]:33678,[185.240.103.236]:33678' (ECSDA) to the list of known hosts.
Welcome to Ubuntu 22.04 LTS
ekzorchik@ekzorchik:~$

у меня не было запроса на разблокировку использования приватного ключа, т.к. я, когда через PuttyGen пересохранял его не указал парольную фразу которым защищен у меня приватный ключ.

А если сделать чтобы приватный ключ в "После Conversions - Export OpenSSH key (force new file format) и сохраняю его как <имя_подключения@<имя_хоста>.pem" указать:

  • Key passphrase: указываю парольную фразу
  • Confirm passphrase: подтверждаю парольную фразу

и сохраняю:

ekzorchik@vpn.ekzorchik.ru_private_key_ubuntu1804p.pem

Инициирую подключение с использованием приватного ключа сохраненного под именем (ekzorchik@vpn.ekzorchik.ru_private_key_ubuntu1804p.pem) к узлу vpn.ekzorchik.ru

ekzorchik@srv-ud1804a:~$ ssh -l ekzorchik vpn.ekzorchik.ru -p 33678 -i ~/.ssh/ekzorchik@vpn.ekzorchik.ru_private_key_ubuntu1804p.pem
Enter passphrase for key '/home/ekzorchik/.ssh/ekzorchik@vpn.ekzorchik.ru_private_key_ubuntu1804p.pem':
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-73-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Thu Feb  1 12:39:31 PM MSK 2024

  System load:  0.0                Processes:             95
  Usage of /:   28.3% of 29.43GB   Users logged in:       1
  Memory usage: 17%                IPv4 address for eth0: 185.240.103.236
  Swap usage:   0%                 IPv4 address for tun0: 10.9.0.1

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

Expanded Security Maintenance for Applications is not enabled.

73 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

1 additional security update can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


*** System restart required ***
Last login: Thu Feb  1 12:30:32 2024 from 176.195.146.227
ekzorchik@ekzorchik:~$

Шаг №5: По итогу, прописываю себе алиас на подключение к vpn.ekzorchik.ru в ~/.bashrc:

ekzorchik@srv-ud1804a:~$ nano ~/.bashrc
alias srv-vpn='ssh -l ekzorchik vpn.ekzorchik.ru -p 33678 -i ~/.ssh/ekzorchik@vpn.ekzorchik.ru_private_key_ubuntu1804p.pem'
ekzorchik@srv-ud1804a:~$ source ~/.bashrc
ekzorchik@srv-ud1804a:~$ srv-vpn
Enter passphrase for key '/home/ekzorchik/.ssh/ekzorchik@vpn.ekzorchik.ru_private_key_ubuntu1804p.pem':
Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-73-generic x86_64)

Вот теперь так лучше, чтобы не набирать все строку подключения, а использовать алиас вида: srv-vpn и будет инициировано подключение к VPS системе.

На этом моя шпаргалка самому себе успешно завершена, с уважением автор блога Олло Александр aka ekzorchik.