• 11-02-2025, 12:06:17
    #1
    https://www.r10.net/php/4363097-php-...post1088772379
    burdaki konumda bxyweb in attığı kodun connect connectwauth ve execi çalışıyor sftp ile ilgili işlemler çalışmamakta hem phpseclib3 e uyarlayıp hemde
    sftp işlemlerini alttakine göre yaparmısınız orjinal ssh2 eklentisi için olan kodu atıyorum
    <?php
        class ogcp_ssh2 {
            private $socket;
            private $sftp;
            private $error;
            
            ##### Constructor #####
            public function __construct() {
                $this->socket = null;
                $this->sftp = null;
                $this->error = "";
            }
            
            public function Connect($host,$port = 22) {
                if($host == "") return false;
                $host = gethostbyname($host);
                if( $this->socket = @ssh2_connect($host,$port) ) {
                    return true;
                } else {
                    $this->error = 'Error #01: Server not found!';
                    return false;
                }
            }
            
            public function ConnectwAuth($host,$port = 22,$user,$pass) {
                if($host == "" || $user == "" || $pass == "") return false;
                
                if( $this->Connect($host,$port) ) {
                    if(@ssh2_auth_password($this->socket,$user,$pass)) {
                        return true;
                    } else {
                        $this->error = 'Error #02: Autentication rejected by server!';
                        return false;
                    }
                }
                $this->error = 'Error #01: Server not found!';
                return false;
            }
    
            public function SFTP_DownloadFile($uzak,$yerel) {
                return ssh2_scp_recv($this->socket, $uzak, $yerel);
                }
    
            public function SFTP_UploadFile($dosya,$dosya2) {
                    return ssh2_scp_send($this->socket, $dosya, $dosya2, 0777);
                }
            
            public function OpenSFTP() {
                if($this->sftp = ssh2_sftp($this->socket)) {
                    return true;
                } else {
                    $this->error = 'Error #03: SFTP Connection rejected!';
                    return false;
                }
            }
            
            public function SFTP_ReadFile($filepath) {
                if($filepath == "") return false;
                if(!$this->sftp) {
                    $this->sftp = @ssh2_sftp($this->socket);
                }
                $filepath = 'ssh2.sftp://'.$this->sftp.'/'.$filepath;
                if( !file_exists($filepath) ) { return false; } else {
                    $dosya = @fopen($filepath,'r');
                    $buffer = "";
                    while(!feof($dosya)) {
                        $buffer .= fread($dosya,filesize($filepath));
                    }
                    return $buffer;
                }
            }
    
            public function SFTP_FileLink($filepath) {
                if($filepath == "") return false;
                if(!$this->sftp) {
                    $this->sftp = @ssh2_sftp($this->socket);
                }
    
                $filepath = 'ssh2.sftp://'.$this->sftp.'/'.$filepath;
                return $filepath;
            }
    
            public function Disconnect() {
                if(function_exists('ssh2_disconnect')) {
                    @ssh2_disconnect($this->socket);
                } else {
                    @fclose($this->socket);
                    unset($this->socket);
                }
                
                return NULL;
            }
    
            public function Exec($cmd) {
                $durum = @ssh2_exec($this->socket, $cmd);
                @stream_set_blocking( $durum, true );
                return $durum;
            }
        }
    ?>
  • 11-02-2025, 12:12:04
    #2
    <?php
    require 'vendor/autoload.php';
    
    use phpseclib3NetSSH2;
    use phpseclib3NetSFTP;
    
    class ogcp_ssh2 {
    private $ssh;
    private $sftp;
    private $error;
    
    ##### Constructor #####
    public function __construct() {
    $this->ssh = null;
    $this->sftp = null;
    $this->error = "";
    }
    
    public function Connect($host, $port = 22) {
    if ($host == "") return false;
    $host = gethostbyname($host);
    $this->ssh = new SSH2($host, $port);
    if ($this->ssh->isConnected()) {
    return true;
    } else {
    $this->error = 'Error #01: Server not found!';
    return false;
    }
    }
    
    public function ConnectwAuth($host, $port = 22, $user, $pass) {
    if ($host == "" || $user == "" || $pass == "") return false;
    
    if ($this->Connect($host, $port)) {
    if ($this->ssh->login($user, $pass)) {
    return true;
    } else {
    $this->error = 'Error #02: Authentication rejected by server!';
    return false;
    }
    }
    $this->error = 'Error #01: Server not found!';
    return false;
    }
    
    public function SFTP_DownloadFile($remote, $local) {
    if (!$this->sftp) {
    $this->sftp = new SFTP($this->ssh->getHost(), $this->ssh->getPort());
    $this->sftp->login($this->ssh->getUsername(), $this->ssh->getPassword());
    }
    return $this->sftp->get($remote, $local);
    }
    
    public function SFTP_UploadFile($local, $remote) {
    if (!$this->sftp) {
    $this->sftp = new SFTP($this->ssh->getHost(), $this->ssh->getPort());
    $this->sftp->login($this->ssh->getUsername(), $this->ssh->getPassword());
    }
    return $this->sftp->put($remote, $local, SFTP::SOURCE_LOCAL_FILE);
    }
    
    public function OpenSFTP() {
    if (!$this->sftp) {
    $this->sftp = new SFTP($this->ssh->getHost(), $this->ssh->getPort());
    if ($this->sftp->login($this->ssh->getUsername(), $this->ssh->getPassword())) {
    return true;
    } else {
    $this->error = 'Error #03: SFTP Connection rejected!';
    return false;
    }
    }
    return true;
    }
    
    public function SFTP_ReadFile($filepath) {
    if ($filepath == "") return false;
    if (!$this->sftp) {
    $this->OpenSFTP();
    }
    return $this->sftp->get($filepath);
    }
    
    public function SFTP_FileLink($filepath) {
    if ($filepath == "") return false;
    if (!$this->sftp) {
    $this->OpenSFTP();
    }
    return $filepath;
    }
    
    public function Disconnect() {
    if ($this->ssh) {
    $this->ssh->disconnect();
    }
    if ($this->sftp) {
    $this->sftp->disconnect();
    }
    return NULL;
    }
    
    public function Exec($cmd) {
    return $this->ssh->exec($cmd);
    }
    }
    ?><?php
    require 'vendor/autoload.php';
    
    use phpseclib3NetSSH2;
    use phpseclib3NetSFTP;
    
    class ogcp_ssh2 {
    private $ssh;
    private $sftp;
    private $error;
    
    ##### Constructor #####
    public function __construct() {
    $this->ssh = null;
    $this->sftp = null;
    $this->error = "";
    }
    
    public function Connect($host, $port = 22) {
    if ($host == "") return false;
    $host = gethostbyname($host);
    $this->ssh = new SSH2($host, $port);
    if ($this->ssh->isConnected()) {
    return true;
    } else {
    $this->error = 'Error #01: Server not found!';
    return false;
    }
    }
    
    public function ConnectwAuth($host, $port = 22, $user, $pass) {
    if ($host == "" || $user == "" || $pass == "") return false;
    
    if ($this->Connect($host, $port)) {
    if ($this->ssh->login($user, $pass)) {
    return true;
    } else {
    $this->error = 'Error #02: Authentication rejected by server!';
    return false;
    }
    }
    $this->error = 'Error #01: Server not found!';
    return false;
    }
    
    public function SFTP_DownloadFile($remote, $local) {
    if (!$this->sftp) {
    $this->sftp = new SFTP($this->ssh->getHost(), $this->ssh->getPort());
    $this->sftp->login($this->ssh->getUsername(), $this->ssh->getPassword());
    }
    return $this->sftp->get($remote, $local);
    }
    
    public function SFTP_UploadFile($local, $remote) {
    if (!$this->sftp) {
    $this->sftp = new SFTP($this->ssh->getHost(), $this->ssh->getPort());
    $this->sftp->login($this->ssh->getUsername(), $this->ssh->getPassword());
    }
    return $this->sftp->put($remote, $local, SFTP::SOURCE_LOCAL_FILE);
    }
    
    public function OpenSFTP() {
    if (!$this->sftp) {
    $this->sftp = new SFTP($this->ssh->getHost(), $this->ssh->getPort());
    if ($this->sftp->login($this->ssh->getUsername(), $this->ssh->getPassword())) {
    return true;
    } else {
    $this->error = 'Error #03: SFTP Connection rejected!';
    return false;
    }
    }
    return true;
    }
    
    public function SFTP_ReadFile($filepath) {
    if ($filepath == "") return false;
    if (!$this->sftp) {
    $this->OpenSFTP();
    }
    return $this->sftp->get($filepath);
    }
    
    public function SFTP_FileLink($filepath) {
    if ($filepath == "") return false;
    if (!$this->sftp) {
    $this->OpenSFTP();
    }
    return $filepath;
    }
    
    public function Disconnect() {
    if ($this->ssh) {
    $this->ssh->disconnect();
    }
    if ($this->sftp) {
    $this->sftp->disconnect();
    }
    return NULL;
    }
    
    public function Exec($cmd) {
    return $this->ssh->exec($cmd);
    }
    }
    ?>