Устанавливаем и настраиваем Rathole для создания соединения между Raspberry Pi и Windows через удаленный сервер.
Установка Unzip
Установим Unzip на сервер и RPi
sudo apt-get update
sudo apt-get install unzipУстановка Rathole на сервер
Скачаем и распакуем Rathole:
wget https://github.com/rapiz1/rathole/releases/download/v0.5.0/rathole-x86_64-unknown-linux-gnu.zip
unzip rathole-x86_64-unknown-linux-gnu.zipПереместим исполняемый файл в /usr/local/bin:
sudo mv rathole /usr/local/bin/Создадим конфигурационный файл для сервера rathole-client.toml
nano ~/rathole-server.tomlсо следующим содержимым:
[server]
bind_addr = "0.0.0.0:2333"
[server.services.ssh_rpi]
bind_addr = "0.0.0.0:10022"
token = "12345rpi"
[server.services.ssh_windows]
bind_addr = "0.0.0.0:10023"
token = "12345windows"server:
bind_addr = "0.0.0.0:2333"— это основной адрес и порт, на котором Rathole будет слушать входящие соединения от клиентов. В данном случае, он доступен на всех интерфейсах
server.services.ssh_rpi:
bind_addr = "0.0.0.0:10022"— этот сервис настроен для проксирования SSH-соединений, предназначенных для Raspberry Pi. Он будет слушать на порту10022на всех интерфейсах.token = "12345rpi"— токен используется для аутентификации клиентов, подключающихся к этому сервису.
server.services.ssh_windows:
bind_addr = "0.0.0.0:10023"— этот сервис настроен для проксирования SSH-соединений для домашнего устройства. Он будет слушать на порту10023.token = "12345windows"— токен для аутентификации клиентов, подключающихся к этому сервису.
Запустим Rathole
rathole ~/rathole-server.tomlУстановка Rathole на Raspberry Pi
Скачаем и распакуем Rathole:
wget https://github.com/rapiz1/rathole/releases/download/v0.5.0/rathole-aarch64-unknown-linux-musl.zip
unzip rathole-aarch64-unknown-linux-musl.zipПереместим исполняемый файл в /usr/local/bin:
sudo mv rathole /usr/local/bin/Создадим конфигурационный файл для Raspberry Pi rathole-client-rpi.toml
nano ~/rathole-client-rpi.tomlсо следующим содержимым:
[client]
remote_addr = "IP_адрес_сервера:2333"
[client.services.ssh_rpi]
token = "12345rpi"
local_addr = "127.0.0.1:22"Запустим Rathole
rathole -c ~/rathole-client-rpi.tomlУстановка Rathole на Windows
Скачаем и распакуем Rathole rathole-x86_64-pc-windows-msvc.zip в папку C:\rathole.
Создадим конфигурационный файл для Windows rathole-client-windows.toml
в папке C:\rathole со следующим содержимым:
[client]
remote_addr = "IP_адрес_сервера:2333"
[client.services.ssh_windows]
token = "12345windows"
local_addr = "127.0.0.1:22"Создадим скрипт для запуска rathole.exe с файлом конфигурации rathole-client-windows.toml:
@echo off
cd /d "C:\Program Files\rathole"
start /B rathole.exe rathole-client-windows.tomlПередаем файл с Raspberry Pi на Windows
Проверим файл конфигурации SSH Windows (обычно находится в C:\ProgramData\ssh\sshd_config):
- добавим строчку
Port 10023 - и
PasswordAuthenticationустановим вyes
notepad C:\ProgramData\ssh\sshd_configПерезапустим службу SSH:
Restart-Service -Name sshdЧтобы передать файл, введем команду в консоли Raspberry Pi
scp -P 10023 /path/on/rpi/file.txt win_user@win_ip_adress:/path/on/windows/Чтобы узнать IP компьютера на Windows, введем в консоли:
ipconfigи найдем IPv4-адрес
IPv4-адрес. . . . . . . . . . . . : 192.168.1.66Передаем файл с Windows на Raspberry Pi
Проверим файл конфигурации SSH Raspberry Pi:
sudo nano /etc/ssh/sshd_config- добавим строчку
Port 10022 - раскомментируем строчку
#Port 22
- и
PasswordAuthenticationустановим вyes
Перезапустим службу SSH:
sudo systemctl restart sshdЧтобы передать файл, введем команду в консоли Windows
scp -P 10022 path\to\your\file.txt rpi_user@rpi_ip_adress:/path/on/rpi/Чтобы узнать IP Raspbery Pi, введем в консоли:
ip aи найдем
inet 192.168.1.55Если вы не можете ввести ответ на запрос о подтверждении подключения введите следующую команду
scp -o StrictHostKeyChecking=no -P 10022 path\to\your\file.txt rpi_user@rpi_ip_adress:/path/on/rpi/Это позволит вам избежать запроса на подтверждение ключа хоста, но это может снизить безопасность.