0755 и '0755' - это не то же самое, что продемонстрировано таким образом:
<?php echo '0755' == 0755 ? 'equal' : 'not equal'; ?>;
Для этого попробуйте удалить одинарные кавычки в районе 0755.
Причина, по которой phpseclib ожидает, что разрешения будут представлены в виде восьмеричного значения ('0755' приводится к десятичному значению, а не восьмеричного), заключается в том, что именно так ftp_chmod
делает это и именно так моделируется Net_SFTP::chmod()
. (на самом деле, почти все SFTP API phpseclib смоделированы после PHP расширения API FTP)