Просмотр исходного кода

[Filemanager] Auto-detect sftp port number (Default 22)

Robert Zollner 5 лет назад
Родитель
Сommit
6be496b05a
1 измененных файлов с 9 добавлено и 1 удалено
  1. 9 1
      install/deb/filemanager/filegator/configuration.php

+ 9 - 1
install/deb/filemanager/filegator/configuration.php

@@ -21,9 +21,17 @@ $dist_config['services']['Filegator\Services\Storage\Filesystem']['config']['ada
             exec ("sudo /usr/local/hestia/bin/v-add-user-sftp-key " . escapeshellarg(basename($v_user)) . " 30", $output, $return_var);
         }
 
+        if ( !isset($_SESSION['SFTP_PORT']) ) {
+            if( preg_match('/^\s*Port\s+(\d+)$/im', file_get_contents('/etc/ssh/sshd_config'), $matches) ) {
+                $_SESSION['SFTP_PORT'] = $matches[1] ?? 22;
+            } else {
+                $_SESSION['SFTP_PORT'] = 22;
+            }
+        }
+
         return new \League\Flysystem\Sftp\SftpAdapter([
             'host' => '127.0.0.1',
-            'port' => 22,
+            'port' => intval($_SESSION['SFTP_PORT']),
             'username' => basename($v_user),
             'privateKey' => '/home/'.basename($v_user).'/.ssh/hst-filemanager-key',
             'root' => '/',