Перейти к содержимому

Лидеры


Популярный контент

Показан контент с высокой репутацией за 10.05.2026 во всех областях

  1. 1 балл
    Мне давно хотелось разобраться в работе протокола SSH, однако, это казалось очень сложной задачей, поэтому тогда я ограничился написанием клиента для древнего протокола telnet. Теперь же я решил разобраться в базовых принципах криптографии и накодить полноценный SSH-клиент под OpenComputers с нуля, включая все криптографичиские алгоритмы. Установить программу в OpenOS можно командой wget -f https://raw.githubusercontent.com/Smok1e/oc-ssh/refs/heads/master/installer.lua /tmp/get-ssh.lua && /tmp/get-ssh.lua Использование программы схоже с клентом OpenSSH. Для подключения к удаленному терминалу достаточно написать ssh user@address. Разумеется, можно сменить порт или включить логирование: Usage: ssh [OPTIONS] destination [COMMAND] Available options: -h, --help: Print usage information and exit -v, --verbose: Enable debug logging --port=<port>: Override port Клиент поддерживает авторизацию по ключу. На данный момент из алгоритмов цифровой подписи реализован только Ed25519. Чтобы сгенерировать пару ключей, используйте команду ssh-keygen. По дефолту она запишет пару ключей в директорию /home/.ssh под названиями id_ed25519 и id_ed25519.pub. Публичный ключ соответствует формату OpenSSH и его можно спокойно вписать в конец файла ~/.ssh/authorized_keys на удалённой машине. Приватный ключ, однако, не совместим с OpenSSH, поэтому скопировать имеющийся приватный ключ, сгенерированный OpenSSH, в OpenOS, не получится. По аналогии с OpenSSH можно также создать файл конфигурации /home/.ssh/config. В нем можно прописать хосты для быстрого подключения в следующем формате: { Host = { address = "192.168.1.128", port = 122, user = "smok1e", identity = /path/to/private/key } } , после чего к нему можно будет подключиться командой ssh Host. Все поля в файле конфигурации, кроме адреса, опциональны. Если поле встречается как в конфиге, так и в опциях командной строки, например, порт, приоритет будет отдаваться опции командной строки. На данный момент реализованы следующие криптографические алгоритмы: X25519 для обмена ключами по Диффи-Хеллману Ed25519 для цифровой подписи при проверке хоста и авторизации по ключу AES128/192/256 в режиме CTR для шифрования между клиентом и сервером HMAC-SHA2-224/256/384/512 для проверки подленности сообщений Алгоритм сжатия не предусмотрен. Хотя текущая реализация самого протокола SSH вполне достаточна для полноценной работы с удаленным терминалом, сам эмулятор терминала допилен не до конца. Разумеется, функционала встроенной в OpenOS библиотеки term.lua недостаточно для корректной обработки большинства современных консольных программ. По-хорошему необходима полноценная реализация xterm-совместимого терминала. Проблема в том, что как такового стандарта, описывающего все escape-последовательности, которые должен обрабатывать терминал, называющий себя xterm-ом, не существует. Более того, существует невообразимое количетво различных надстроек и модификаций, усложняющих разработку в разы. Пока что реализована только базовая обработка escape-последовательностей по типу перемещения курсора и установки цвета текста, в связи с чем не все программы могут отображаться корректно.
  2. 1 балл
    Finger.Translate: From Enhlush: Hello, I write programm for robot. You can download in minecraft pastebin get djsxf67h [name] [command] [size] [size] [your height] To English: Hi! I wrote the program for OpenComputers robot. With its help your robot will dig a hole. To install, simply insert the internet card to your computer/robot and type following to the OpenOS shell: mkdir /usr/bin/ pastebin get djsxf67h /usr/bin/ocrq Using: /usr/bin/ocrq [x] [y] [depth], where [x] is a length, [y] is a width and [depth] tells the robot how deep it must dig. To Russian: Привет всем! Я написал прогу для робота из OpenComputers, чтобы он копал яму. Чтобы её установить, просто вставьте интернет-карту в компьютер или в робота и выполните следующие команды в шелле OpenOS: mkdir /usr/bin pastebin get djsxf67h /usr/bin/ocrq Использование: /usr/bin/ocrq [x] [y] [z], где [x] — длина, [y] — ширина, которую нужно будет вскопать роботу, а [z] говорит роботу, как глубоко он должен копать. Thanks for using Finger.Translate!
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...