Remote Access

Remote Access



28 июля


Привет, бандиты и хацкеры! И это не авторская статья. Я лишь перевёл её для вас.

Этот материал несет ознакомительный характер. Я вас ни к чему не призываю! Задача статьи лишь развлекать. За все свои действия вы сами несете полную ответственность.


SSH

SSH обеспечивает безопасный способ доступа к удаленным хостам и заменяет такие инструменты, как telnet, rlogin, rsh, ftp. Termux предоставляет SSH через два пакета: dropbear и openssh. Если вы никогда раньше не использовали эти инструменты, рекомендуется установить "openssh", так как он более распространен.

Использование SSH-клиента

Вы можете получить SSH-клиент, установив либо openssh, либо dropbear.

Пример использования

Чтобы войти на удаленную машину, где демон ssh работает на стандартном порту (22):

ssh user @ hostname_or_ip

То же, что и выше, но если демон ssh работает на другом порту, например 8022:

ssh -p 8022 user @ hostname_or_ip

Использование аутентификации с открытым ключом, когда ssh работает на стандартном порту, и закрытый ключ, хранящийся в файле `id_rsa`:

ssh -i id_rsa user @ hostname_or_ip

Обратите внимание, что если `id_rsa` будет храниться в каталоге` ~ / .ssh`, вы можете не указывать его в команде. Но если у вас есть несколько ключей, необходимо выбрать определенный ключ с помощью `-i {path_to_privkey}`.

Агент SSH

Важное примечание: это не работает для Dropbear.

Если вы хотите использовать SSH-агент, чтобы избежать ввода паролей, пакет Termux openssh предоставляет скрипт-обертку с именем `ssha` (обратите внимание на` a` в конце) для ssh, который:

При необходимости запускает агент ssh (или подключается к нему, если он уже запущен).

Запускает `ssh-add` при необходимости.

Запускает `ssh` с предоставленными аргументами.

Это означает, что агент будет запрашивать пароль ключа при первом запуске, но помнить авторизацию для последующих запусков.

Использование сервера SSH

OpenSSH

OpenSSH (также известный как OpenBSD Secure Shell) представляет собой набор безопасных сетевых утилит, основанных на протоколе Secure Shell (SSH), который обеспечивает безопасный канал через незащищенную сеть в архитектуре клиент-сервер.

Стандартный порт SSH в Termux - 8022.

Запуск и остановка сервера OpenSSH

Поскольку Termux не использует систему инициализации, службы запускаются вручную из командной строки.

Чтобы запустить сервер OpenSSH, вам нужно выполнить эту команду:

sshd

Если вам нужно остановить `sshd`, просто убейте его процесс:

pkill sshd

Демон SSH осуществляет запись в системный журнал Android, вы можете просмотреть его, запустив logcat -s 'sshd: *'. Вы можете сделать это либо из Termux, либо из ADB.

Настройка аутентификации по паролю

Аутентификация по паролю включена по умолчанию. Это позволит вам начать с ним гораздо проще. Прежде чем продолжить, убедитесь, что вы понимаете, что аутентификация по паролю менее безопасна, чем аутентификация на основе открытого ключа.

1. Убедитесь, что все обновлено и пакет `openssh` установлен:

pkg upgrade
pkg install openssh

2. Аутентификация по паролю включена по умолчанию в файле конфигурации. Но вы все равно можете просмотреть его ($ PREFIX / etc / ssh / sshd_config), это должно быть так:

PrintMotd yes
PasswordAuthentication yes
Subsystem sftp /data/data/com.termux/files/usr/libexec/sftp-server

3. Установите новый пароль. Выполнить команду passwd. Хотя программа допускает минимальную длину пароля 1 символ, рекомендуемая длина пароля составляет более 8-10 символов. Пароли не выводятся на консоль.

$ passwd
New password:
Retype new password:
New password was successfully set.

Настройка аутентификации с открытым ключом

Аутентификация с открытым ключом является рекомендуемым способом входа с использованием SSH. Чтобы использовать этот тип аутентификации, вам нужно иметь пару открытый / закрытый ключ. Для успешного входа в систему открытый ключ должен присутствовать в списке авторизованных ключей на удаленном компьютере, а закрытый ключ должен храниться на вашем локальном хосте в безопасности.

В следующем примере предполагается, что вы хотите установить аутентификацию с открытым ключом между вашим ПК (хостом) и устройством Android, на котором работает Termux (удаленно). Также предполагается, что вы используете дистрибутив Linux на вашем ПК.

1. Если у вас нет ключей, вы можете сгенерировать их. В этом примере мы сгенерируем ключ RSA. На ПК выполните эту команду:

ssh-keygen -t rsa -b 2048 -f id_rsa

Команда, показанная выше, генерирует закрытый ключ RSA с длиной ключа 2048 бит и сохраняет его в файл `id_rsa`. В этой же директории вы можете найти файл `id_rsa.pub` - это открытый ключ.

Важное примечание: 2048 бит - это минимальная длина ключа, которая считается безопасной. Можно использовать более высокие значения, но не использовать более 4096, поскольку удаленный сервер может не поддерживать большие ключи.

2. Скопируйте ключ на удаленный компьютер (Termux). Для установки pubkey на удаленном компьютере должна быть включена аутентификация по паролю. Теперь сделайте:

ssh-copy-id -p 8022 -i id_rsa IP_ADDRESS

Не забудьте заменить IP_ADDRESS фактическим IP-адресом локальной сети вашего устройства. Это можно определить с помощью команды ifconfig.

Если все было в порядке, вы увидите следующее сообщение:

Количество добавленных ключей: 1

Теперь попробуйте войти в систему с помощью: "ssh -p '8022' '192.168.1.4'"

и убедитесь, что были добавлены только те ключи, которые вы хотели.

(Это в командной строке на ПК)

3. С этого момента аутентификация по паролю может быть отключена. Отредактируйте файл $ PREFIX / etc / ssh / sshd_config и замените строку, начинающуюся с «PasswordAuthentication», на

PasswordAuthentication no
  • (не обязательно)

Затем выполните команду pkill sshd; sshd для перезагрузки сервера с обновленным файлом конфигурации.

Dropbear

Dropbear - это программный пакет, написанный Мэттом Джонстоном, который обеспечивает Secure Shell-совместимый сервер и клиент. Он предназначен для замены стандартного OpenSSH для сред с низким объемом памяти и ресурсов процессора, таких как встроенные системы.

Важное примечание: Dropbear не предоставляет SFTP-сервер.

Запуск и остановка сервера Dropbear

Как и в OpenSSH, вам нужно будет выполнить его двоичный файл вручную. Кроме того, в отличие от OpenSSH, Dropbear не использует файл конфигурации, а только аргументы командной строки.

Сервер работает в фоновом режиме, доступна аутентификация как по паролю, так и по открытому ключу. Для этого просто введите в консоли:

dropbear

Если вам нужна только аутентификация с открытым ключом, сделайте это:

dropbear -s

Также сервер может быть запущен на переднем плане. Для этого используйте параметр `-F`:

dropbear -F

Сервер, запущенный на переднем плане, можно остановить с помощью комбинации клавиш Ctrl-C. Если это фон, то вы можете использовать `pkill`:

pkill dropbear

Настройка аутентификации по паролю

Как и в OpenSSH, аутентификация по паролю включена по умолчанию.

Все, что вам нужно сделать, это:

1. Убедитесь, что все обновлено и установлен dropbear:

pkg upgrade
pkg install dropbear

2. Установите пароль, выполнив команду passwd.

3. Запустите сервер dropbear. Вы можете выполнить либо dropbear, чтобы запустить его в фоновом режиме, либо dropbear -F, чтобы запустить его на переднем плане.

Настройка аутентификации с открытым ключом

Как и в OpenSSH, вы можете поместить свои ключи, используя ssh-copy-id. Но если вы решите настроить аутентификацию с открытым ключом из Termux на что-то другое, стоит упомянуть некоторые важные различия между OpenSSH и Dropbear.

1. Dropbear использует другую команду для генерации ключей. Пример генерации ключа RSA (2048 бит):

dropbearkey -t rsa -f id_rsa -s 2048

2. Открытый ключ должен быть получен вручную. Чтобы сделать это, вы должны снова использовать «dropbearkey», но по-другому:

dropbearkey -f id_rsa -y

3. Dropbear и OpenSSH используют разные ключевые форматы. Чтобы использовать ключ Dropbear в OpenSSH, вам придется преобразовать его:

dropbearconvert dropbear openssh ./id_rsa ./id_rsa_openssh

Эту процедуру можно выполнить наоборот, чтобы получить ключ в формате Dropbear:

dropbearconvert openssh dropbear ./id_rsa_openssh ./id_rsa_dropbear


Использование SFTP

Пакет OpenSSH предоставляет инструмент для доступа к удаленным хостам через SFTP. Это позволит вам работать с файлами так же, как через FTP, но с большей безопасностью.

Подключение к Termux (прослушивание sshd через порт 8022):

$ sftp -P 8022 192.168.1.20

Подключение к другому месту (прослушивание sshd через стандартный порт):

$ sftp sftp.example.com

Однако для использования SFTP-клиента из командной строки вы должны знать некоторые основные команды:

cd PATH - изменить текущий каталог на `PATH`.

get REMOTE [LOCAL] - скачать файл `REMOTE` и переименовать его в` LOCAL` (необязательно).

mkdir PATH - создать каталог `PATH`.

ls [PATH] - список файлов в каталоге `PATH`. Если аргумент отсутствует, файлы в текущем каталоге будут перечислены.

put LOCAL [REMOTE] - Загрузить файл `LOCAL` и переименовать его в` REMOTE` (необязательно).

rm FILE - Удалить файл `FILE`.

Это не полный список команд SFTP. Чтобы просмотреть все доступные команды, попробуйте просмотреть справочную страницу (man sftp) или просмотреть краткую справку в интерактивном сеансе SFTP, введя команду `help`.

МОСХ

Mosh - это приложение для удаленного терминала, которое позволяет осуществлять роуминг, поддерживает прерывистое соединение и обеспечивает интеллектуальное локальное эхо и линейное редактирование нажатий клавиш пользователя.

Пример использования

Важное примечание: Mosh должен быть установлен как на стороне клиента, так и на стороне сервера.

Подключение к удаленному хосту (прослушивание sshd через стандартный порт):

mosh user@ssh.example.com

Подключение к Termux (прослушивание sshd через порт 8022):

mosh --ssh="ssh -p 8022" 192.168.1.25


Rsync

Rsync - это инструмент для синхронизации файлов с удаленными хостами или локальными каталогами (или дисками). Для лучшего опыта использования rsync убедитесь, что установлен пакет `openssh` (или` dropbear`).

Пример использования

Синхронизируйте свои фотографии с ПК:

$ rsync -av /sdcard/DCIM/ user@192.168.1.20:~/Pictures/Android/

Получить фотографии с удаленного устройства Android:

$ rsync -av -e 'ssh -p 8022' 192.168.1.3:/sdcard/DCIM/ /sdcard/DCIM/

Синхронизируйте локальные каталоги (например, с внешней SD-карты на домашнюю страницу Termux):

$ rsync -av /storage/0123-4567/myfiles ~/files

Возможно, вы захотите увидеть справочную страницу (`man rsync`), чтобы узнать больше о ее использовании.


Report Page