После двух с половиной лет разработки увидел свет релиз библиотеки libssh 0.6.0, предназначенной для интеграции поддержки SSH в программы на языке Си. Библиотека позволяет выполнять программы на удаленном сервере, копировать файлы через защищенное соединение, обеспечивать работу приложения в роли SSH-сервера. Поддерживаются такие механизмы, как scp и sftp. Исходные тексты библиотеки распространяются под лицензией LGPL.
Основные новшества:
Новый серверный API на основе callback-вызовов;
Поддержка алгоритма формирования цифровых подписей ECDSA (Elliptic Curve Digital Signature Algorithm) при сборке с OpenSSL и методов обмена ключами curve25519-sha256@libssh.org.
Новый API для управления открытыми ключами;
Поддержка GSSAPI (Kerberos), протестированная с FreeIPA и gssproxy. Для управления добавлены опции GSSAPIServerIdentity, GSSAPIClientIdentity, GSSAPIDelegateCredentials;
Новый API для аутентификации пользователей.
Новые функции ssh_get_publickey_hash() и ssh_get_poll_flags();
Поддержка алгоритма ECDH (Elliptic Curve Diffie Hellman);
Расширены возможности системы ведения логов;
Поддержка перенаправления SSH-agent;
Поддержка инициированая повторного обмена ключами (key-reexchange).
Расширено число unit-тестов.
Особенности Libssh (не путать с проектом libssh2, который близок по функциональности, но распространяется в рамках лицензии BSD):
Поддержка серверных и клиентских функций;
Поддержка режимов шифрования AES-128, AES-192, AES-256, Blowfish, 3DES в CBC, AES в режиме CTR, ECDH (Elliptic Curve Diffie Hellman);
Поддержка протоколов SSH1 и SSH2;
Поддержка расширений протокола, специфичных для OpenSSH;
Возможность работы с серверами публичных ключей RSA и DSS;
Поддержка Kerberos (GSSAPI);
Поддержка сжатия данных;
Работа совместно с ssh-agent и возможность организации работы нескольких сеансов в рамках одного соединения;
Поддержка сборки с использованием внешних библиотек libcrypto (из OpenSSL) и libgcrypt (GCrypt).
Источник: http://www.opennet.ru/opennews/art.shtml?num=38824
