Устанавливаем и настраиваем 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/
Это позволит вам избежать запроса на подтверждение ключа хоста, но это может снизить безопасность.