Created attachment 16959 [details] Backtrace Версия - php8.2-ssh2-1.3.1-alt3.24 Шаги воспроизведения root: # apt-get install -y php8.2 php8.2-fpm-fcgi apache2-mod_php8.2 php8.2-ssh2 test (первый системный пользователь): $ export LANG="en_US.UTF-8" $ export LC_ALL="en_US.UTF-8" $ echo y | ssh-keygen -f '/home/test/.ssh/id_rsa' -t rsa -N '' && cat /home/test/.ssh/id_rsa.pub > /home/test/.ssh/authorized_keys && \ tmpdir=$(mktemp -d) && \ cd $tmpdir && \ cat <<'EOF' > ssh-test.php <?php $conn = ssh2_connect($argv[1], 22); ssh2_auth_pubkey_file($conn, 'test', '/home/test/.ssh/id_rsa.pub', '/home/test/.ssh/id_rsa'); $sftp = ssh2_sftp($conn); ssh2_sftp_mkdir($sftp, $argv[2]); ?> EOF $ php8.2 ssh-test.php $(hostname -i) $(pwd)/my-ssh-test && stat $(pwd)/my-ssh-test Ожидаемый результат: создана папка my-ssh-test Фактический результат: Segfault при выполнении команды ssh2_auth_pubkey_file. Не воспроизводится с php8.3-ssh2-1:1.3.1-alt3.12. Воспроизводится в P11. Не воспроизводится в P10. В backtrace характерное: #2 0x00007f222795ba3b in _libssh2_rsa_new_openssh_private (passphrase=0x18 <error: Cannot access memory at address 0x18>, filename=0x7f2227a02228 "/home/test/.ssh/id_rsa", session=0x7f2227a90000, rsa=0x7ffd797e52d0) at /usr/src/debug/libssh2-1.11.0/src/openssl.c:1049
Воспроизводится и с php8.1-ssh2-1.3.1-alt3.30
Обнаружил, что ранее метод ssh2_auth_pubkey_file получал passphrase по ходу выполнения программы, теперь он где то теряется по пути. Как временное решение можно явно передать любую строку в поле для passphrase например так: ssh2_auth_pubkey_file($conn, 'test', '/home/test/.ssh/id_rsa.pub', '/home/test/.ssh/id_rsa','some phrase');
Created attachment 16996 [details] Исправление Segmentation fault Патч добавляет проверку на passphrase. Решение отсюда: https://bugs.php.net/bug.php?id=79702
Спасибо.
php8.3-ssh2-1:1.4.1-alt1.12 -> sisyphus: Thu Oct 10 2024 Anton Farygin <rider@altlinux> 1:1.4.1-alt1.12 - Rebuild with php-devel = 8.3.12-alt1 Thu Oct 10 2024 Anton Farygin <rider@altlinux.ru> 1:1.4.1-alt1 - 1.3.1 -> 1.4.1 - added patch from php bugtracker 79702 (closes: #51645)