Пятница. Рабочий день окончен и я наконец могу спокойно посмотреть стрим по зомбям. Люблю такие моменты.
Включаю YouTube, и… Здрасте приплыли.
Он и раньше подтормаживал, но мне удавалось решить вопрос с помощью некой утилиты «гудбай», но теперь ни она, ни смена браузера, не помогают.
И что делать? Ну конечно же освежать навыки десятилетней давности, когда мне нужно было с работы заходить в локальную сеть домашнего провайдера.
Тогда мне хватало старенького ноутбука, подключенного к домашней сети и с линуксом на борту. Кажется, там стояла Ubuntu. Подключался к нему по SSH с помощью программы Putty, а в браузере прописывал доступ через SOCKS 5. Всё просто.
Сейчас тоже решил не городить огород. В офисе есть VPS, подключенный к тамошней сети. У местного провайдера Ютуб работает нормально. Значит, можно смотреть видеоролики через него. Нужно лишь выполнить несколько действий.
Действие первое: Доступ к машине, подключенной к нужной сети
Тут всё просто. У меня уже есть IP сервера, логин и пароль для доступа по SSH.
Если бы не было, я бы арендовал его на Бегете. Сделать это можно по ссылке.
Только в качестве локации желательно выбрать «Азия, Казахстан».
Дальше, убеждаюсь, что это будет Ubuntu 24.4 (мне так удобнее), включаю переключатель «Быстрая установка ПО», жму кнопку «Создать».
На почту (указанную при регистрации) придут IP, логин и пароль. На этом первое действие завершается.
Действие второе: Настраиваю Putty
Запускаю Putty.
Если у тебя нет этой программы, то скачать её можно на официальном сайте.
Скачать, установить, запустить.
Предположим, что доступы к твоему серверу выглядят так.
IP: 90.XXX.XXX.XXX
Логин: rXXt
Пароль: xXXXXXxXXxxxXX
После запуска PUTTY видим вот такое окно.
В поле «Host Name (or IP address)» вписываю IP сервера (в моём случае 90.XXX.XXX.XXX).
В поле «Saved Sessions» пишу «Мой сервер», но ты можешь придумать любое другое название.
Хму кнопку «Save», и название сервера появляется в списке ниже.
Теперь настраиваю туннель. Для этого (в левом вертикальном меню категорий) кликаю по плюсику перед SSH, а в открывшемся пункте кликаю Tunnels.
Здесь прописываю номер порта 3088 (это пример!, а по факту лучше указать какой-нибудь 8088 или 1083), выбираю «Dynamic» и нажимаю кнопку «Add».
Порт появился в поле «Forwarded ports».
В левом меню категорий мотаю наверх и кликаю «Session». На открывшемся экране, нажимаю кнопку «Save», чтобы сохранить настройки туннеля в сессию.
Нажимаю кнопку «Open» (она внизу), после чего запустится консоль. В консоли ввожу логин (жму Enter), а затем пароль (при вводе он не отображается в консоли) (жму Enter).
На этом второе действие закончено, но Putty не отключаем.
Действие третье: Настраиваю браузер
Я выбрал Firefox (мне так проще), но по аналогии это будет работать и с другими.
Открываю Firefox.
Кликаю «гамбургер» (значок и трёх полосок в правой верхней части окна браузера).
Выбираю «Настройки».
Окно настроек проматываю в самый низ, где находится подзаголовок «Параметры сети». Там жму кнопку «Настроить…».
В окне параметров соединения переключаюсь на опцию «Ручная настройка прокси».
В поле «Узел SOCKS» вписываю 127.0.0.1 (это общепринятый локальный IP системы, т.н. localhost).
В поле «Порт» вписываю тот же номер порта, который мы только что указали в настройках туннеля. В моём примере это 3088.
Нажимаю «Ок».
На этом настройка браузера закончена. Если Putty всё ещё запущен, а порт туннеля не занят, то теперь в этом браузере можно зайти на любой сай с IP удалённого сервера.
Рекомендую, в первую очередь, перейти на сайт 2ip.ru. Там должен отобразиться IP вашего сервера (в моём примере это 90.XXX.XXX.XXX), если всё сделано правильно.
Действие четвёртое (секретное): Настраиваем ключи доступа
В принципе, это необязательное действие. Но, во-первых, оно защитит ваш сервер от перебора паролей, и во-вторых, сделает использование SSH-туннеля более удобным, поскольку не придётся всякий раз при входе вводить логин/пароль.
Для создания ключей нужны две команды. Вот эта создаст ключи. После её ввода нужно будет несколько раз прожать Enter.
ssh-keygen -t rsa -b 4096
А эта скопирует публичный ключ в файл authorized_keys в папке пользователя.
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
Следующая команда откроет ключ в редакторе vi.
vi /root/.ssh/id_rsa
Аккуратно курсором мышки (с зажатой правой кнопкой) выделяем открывшийся текст от начала строки «——BEGIN OPENSSH PRIVATE KEY——» до окончания строки «——END OPENSSH PRIVATE KEY——«. После этого прожимаем Ctrl-Ins.
Теперь заходим в простой текстовый редактор (например в блокнот) и прожимаем Ctrl-V. Сохраняю под именем, допустим yproxy.txt в известную мне папку.
Всё. Ключ у нас. Теперь его нужно сконвертировать с помощью утилиты puttygen.exe (лежит в папке Putty).
Прожимаю Win-R, в поле с командой ввожу C:\Program Files\PuTTY\puttygen.exe
Жму «ОК».
В открывшемся окне программы жму «Load».
В форме выбора файлов переключаюсь в «All files» и открываю файл с сохранённым приватным ключом (в моём примере это yproxy.txt).
Если всё хорошо, то получаю сообщение об успешном импорте ключа.
Жму кнопку «Save private key» и сохраняю ключ в какую-нибудь известную мне папку, где он с этого момента будет лежать постоянно.
Закрываю Putty. Открываю Putty. Выбираю сохранённую сессию из списка, тыкаю в неё мышкой и прожимаю кнопку «Load».
В поле «Host Name» и «Saved Sessions» появятся сохранённые данные (IP сервера и название сессии).
Иду в левое вертикальное меню категорий, раскрываю пункт «SSH», раскрываю подпункт «Auth», кликаю «Credentials», в поле «Private key file for authentication» жму кнопку «Browse…» и выбираю файл со сконвертированным ключом.
Теперь, в том же вертикальном меню, кликаю «Data». В поле «Auto-login username» вписываю логин. В моём примере это «rXXt».
Мотаю меню на верх, жму «Session», жму кнопку «Save».
Жму кнопку «Open», и происходит магия: я вхожу на сервер без необходимости писать логин/пароль.
Осталось объяснить серверу, что отныне на него можно будет заходить только по ключу. Для этого, в уже открытой консоли, ввожу команды.
Сначала эту. После неё нужно будет ввести пароль (если я не под рутом).
sudo su
Затем эту, чтобы открыть конфиг.
vi /etc/ssh/sshd_config
Откроется окно редактирования. В нём нужно найти вот такую строчку. У меня она закомментирована.
#PasswordAuthentication yes
У меня она закомментирована символом решётки (#).
Важно, чтобы раскладка клавиатуры в этот момент была латиница. Прожмите клавишу Ins, чтобы внизу экрана появилась надпись «— REPLACE —«.
Курсор передвигается стрелками на клавиатуре.
Решётку убираю, а «yes» заменяю на «no».
Вот так. Теперь нужно сохраниться и выйти. Для этого прожимаем Esc и сразу после этого вписываем «:wq» и жмём Enter.
Проверим и убедимся, что «PasswordAuthentication yes» отсутствует в добавочных файлах. Для этого вводим команду.
grep -Rnw '/etc/ssh/sshd_config.d/' -e 'PasswordAuthentication yes'
Если видим что-нибудь типа этого, то нужно сделать ещё одно действие.
Выделяем «фиолетовый текст» (который не белый, не зелёный, не красный и содержит путь к файлу), копируем сочетанием клавиш Ctrl-Ins и вставляем в какой-нибудь текстовый редактор. В редакторе добавляем перед этой строкой «vi «. Вот что получилось у меня.
vi /etc/ssh/sshd_config.d/50-cloud-init.conf
Выделяем в редакторе, копируем (Ctrl-C), и вставляем в консоль сочетанием клавиш Shift-Ins. Жмём Enter. В консоли открывается содержимое файла.
Точно так же, как в тексте выше, меняю «yes» на «no» и сохраняю.
Перезапускаю SSH вот этой командой.
systemctl restart ssh
Всё. При попытке войти без ключа (проверял, открыв Putty параллельно с уже работающей, чтобы если что, откатить) ловлю ошибку.
Зато с ключом заходит отлично. Что и требовалось.
Всё. Теперь запускаю Putty, перехожу на сервер, открываю Firefox и смотрю видео с офисного IP, что и требовалось. И пока видеоролики не тормозят.
Если хочется запускать соединение быстро, можно сделать cmd-файл с содержимым вроде этого.
@echo off cd C:\Program Files\PuTTY\ start putty.exe -load "Мой сервер"
А к нему, на рабочем столе, сделать ярлык.
А с вами был Доктор Лексиум. Всего доброго.