wp-admin/includes/class-wp-filesystem-ssh2.php:98Constructor.
$optarrayoptionalnull$hostnamestring
$usernamestring
$portintdefault: 22
$passwordstring
$public_keystring
$private_keystring
public function __construct( $opt = null ) { $this->method = 'ssh2'; $this->errors = new WP_Error(); $this->options = array( 'port' => 22, 'hostname' => '', 'username' => '', 'password' => null, ); // Check if possible to use ssh2 functions. if ( ! extension_loaded( 'ssh2' ) ) { $this->errors->add( 'no_ssh2_ext', __( 'The ssh2 PHP extension is not available' ) ); return; } if ( ! is_array( $opt ) ) { $opt = array(); } // Set defaults: if ( ! empty( $opt['port'] ) ) { $this->options['port'] = $opt['port']; } if ( empty( $opt['hostname'] ) ) { $this->errors->add( 'empty_hostname', __( 'SSH2 hostname is required' ) ); } else { $this->options['hostname'] = $opt['hostname']; } // Check if the options provided are OK. if ( ! empty( $opt['public_key'] ) && ! empty( $opt['private_key'] ) ) { $this->options['public_key'] = $opt['public_key']; $this->options['private_key'] = $opt['private_key']; $this->options['hostkey'] = array( 'hostkey' => 'ssh-rsa,ssh-ed25519' ); $this->keys = true; } // A username is always required, whether authenticating with a password or with keys. if ( empty( $opt['username'] ) ) { $this->errors->add( 'empty_username', __( 'SSH2 username is required' ) ); } else { $this->options['username'] = $opt['username']; } if ( ! empty( $opt['password'] ) ) { $this->options['password'] = $opt['password']; } elseif ( ! $this->keys ) { // Password can be blank if we are using keys. $this->errors->add( 'empty_password', __( 'SSH2 password is required' ) ); } }Introduced in 2.7.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
src/wp-admin/includes/class-wp-filesystem-ssh2.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.