SSH2
in package
Pure-PHP implementation of SSHv2.
Tags
Table of Contents
- CHANNEL_AGENT_FORWARD = 4
- CHANNEL_EXEC = 1
- CHANNEL_KEEP_ALIVE = 5
- CHANNEL_SHELL = 2
- CHANNEL_SUBSYSTEM = 3
- LOG_COMPLEX = 2
- Returns the message content
- LOG_MAX_SIZE = 1048576
- Make sure that the log never gets larger than this
- LOG_REALTIME = 3
- Outputs the content real-time
- LOG_REALTIME_FILE = 4
- Dumps the content real-time to a file
- LOG_SIMPLE = 1
- Returns the message numbers
- MASK_CONNECTED = 0x2
- MASK_CONSTRUCTOR = 0x1
- MASK_LOGIN = 0x8
- MASK_LOGIN_REQ = 0x4
- MASK_SHELL = 0x10
- MASK_WINDOW_ADJUST = 0x20
- READ_NEXT = 3
- Returns whenever a data packet is received.
- READ_REGEX = 2
- Returns when a string matching the regular expression $expect is found
- READ_SIMPLE = 1
- Returns when a string matching $expect exactly is found
- $agent : System_SSH_Agent
- A System_SSH_Agent for use in the SSH2 Agent Forwarding scenario
- $auth : array<string|int, mixed>
- Authentication Credentials
- $bad_key_size_fix : bool
- Some versions of OpenSSH incorrectly calculate the key size
- $banner_message : string
- Banner Message
- $binary_packet_buffer : string|false
- Binary Packet Buffer
- $bitmap : int
- Execution Bitmap
- $channel_buffers : array<string|int, mixed>
- Channel Buffers
- $channel_extended_data_type_codes : array<string|int, mixed>
- SSH_MSG_CHANNEL_EXTENDED_DATA's data_type_codes
- $channel_open_failure_reasons : array<string|int, mixed>
- SSH_MSG_CHANNEL_OPEN_FAILURE 'reason codes', defined in RFC4254
- $channel_status : array<string|int, mixed>
- Channel Status
- $compression_algorithms_client_to_server : array<string|int, mixed>|false
- Compression Algorithms: Client to Server
- $compression_algorithms_server_to_client : array<string|int, mixed>|false
- Compression Algorithms: Server to Client
- $crypto_engine : int
- Crypto Engine
- $curTimeout : mixed
- Current Timeout
- $decrypt : object
- Server to Client Encryption Object
- $decrypt_block_size : int
- Block Size for Client to Server Encryption
- $disconnect_reasons : array<string|int, mixed>
- Disconnection Message 'reason codes' defined in RFC4253
- $encrypt : object
- Client to Server Encryption Object
- $encrypt_block_size : int
- Block Size for Server to Client Encryption
- $encryption_algorithms_client_to_server : array<string|int, mixed>|false
- Encryption Algorithms: Client to Server
- $encryption_algorithms_server_to_client : array<string|int, mixed>|false
- Encryption Algorithms: Server to Client
- $errors : string
- Error information
- $exchange_hash : string
- Exchange hash
- $exit_status : int
- Exit status returned from ssh if any
- $fsock : object
- The Socket Object
- $get_seq_no : int
- Get Sequence Number
- $hmac_check : object
- Server to Client HMAC Object
- $hmac_create : object
- Client to Server HMAC Object
- $hmac_size : int
- Size of server to client HMAC
- $host : string
- Hostname
- $identifier : string
- The SSH identifier
- $in_request_pty_exec : bool
- Flag set while exec() is running when using enablePTY()
- $in_subsystem : bool
- Flag set after startSubsystem() is called
- $interactiveBuffer : array<string|int, mixed>
- Interactive Buffer
- $is_timeout : bool
- Did read() timeout or return normally?
- $kex_algorithm : string|false
- Key Exchange Algorithm
- $kex_algorithms : array<string|int, mixed>|false
- Key Exchange Algorithms
- $kex_dh_group_size_max : int
- Maximum Diffie-Hellman Group Bit Size in RFC 4419 Key Exchange Methods
- $kex_dh_group_size_min : int
- Minimum Diffie-Hellman Group Bit Size in RFC 4419 Key Exchange Methods
- $kex_dh_group_size_preferred : int
- Preferred Diffie-Hellman Group Bit Size in RFC 4419 Key Exchange Methods
- $keyboard_requests_responses : array<string|int, mixed>
- Keyboard Interactive Request / Responses
- $languages_client_to_server : array<string|int, mixed>|false
- Languages: Client to Server
- $languages_server_to_client : array<string|int, mixed>|false
- Languages: Server to Client
- $last_interactive_response : string
- The Last Interactive Response
- $last_packet : int
- Time of first network activity
- $log_boundary : string
- Log Boundary
- $log_long_width : int
- Log Long Width
- $log_short_width : int
- Log Short Width
- $log_size : int
- Current log size
- $mac_algorithms_client_to_server : array<string|int, mixed>|false
- MAC Algorithms: Client to Server
- $mac_algorithms_server_to_client : array<string|int, mixed>|false
- MAC Algorithms: Server to Client
- $message_log : array<string|int, mixed>
- Message Log
- $message_number_log : array<string|int, mixed>
- Message Number Log
- $message_numbers : array<string|int, mixed>
- Message Numbers
- $packet_size_client_to_server : array<string|int, mixed>
- Packet Size
- $port : int
- Port Number
- $preferred : array<string|int, mixed>
- Preferred Algorithms
- $preferred_signature_format : string|false
- Preferred Signature Format
- $quiet_mode : mixed
- Flag to suppress stderr from output
- $realtime_log_file : resource
- Real-time log file pointer
- $realtime_log_size : int
- Real-time log file size
- $realtime_log_wrap : mixed
- Real-time log file wrap boolean
- $request_pty : bool
- Flag to request a PTY when using exec()
- $retry_connect : bool
- Should we try to re-connect to re-establish keys?
- $send_id_string_first : bool
- Send the identification string first?
- $send_kex_first : bool
- Send the key exchange initiation packet first?
- $send_seq_no : int
- Send Sequence Number
- $server_channels : array<string|int, mixed>
- Server Channels
- $server_host_key_algorithms : array<string|int, mixed>|false
- Server Host Key Algorithms
- $server_identifier : array<string|int, mixed>|false
- Server Identifier
- $server_public_host_key : string
- Server Public Host Key
- $session_id : string
- Session identifier
- $signature : string
- Server signature
- $signature_format : string
- Server signature format
- $signature_validated : bool
- Has the signature been validated?
- $stdErrorLog : string
- Contents of stdError
- $terminal_modes : array<string|int, mixed>
- Terminal Modes
- $timeout : mixed
- Timeout
- $window_resize : int
- What we resize the window to
- $window_size : int
- The Window Size
- $window_size_client_to_server : array<string|int, mixed>
- Window size, client to server
- $window_size_server_to_client : array<string|int, mixed>
- Window size, server to client
- $windowColumns : int
- Number of columns for terminal window size
- $windowRows : int
- Number of columns for terminal window size
- __construct() : SSH2
- Default Constructor.
- __destruct() : mixed
- Destructor.
- _append_log() : mixed
- Logs data packets
- _array_intersect_first() : mixed
- Returns the first value of the intersection of two arrays or false if the intersection is empty. The order is defined by the first parameter.
- _bad_algorithm_candidate() : bool
- Tests whether or not proposed algorithm has a potential for issues
- _close_channel() : bool
- Closes and flushes a channel
- _connect() : bool
- Connect to an SSHv2 server
- _define_array() : mixed
- Define Array
- _disconnect() : bool
- Disconnect
- _encryption_algorithm_to_crypt_instance() : mixed
- Maps an encryption algorithm name to an instance of a subclass of \phpseclib\Crypt\Base.
- _encryption_algorithm_to_key_size() : int|null
- Maps an encryption algorithm name to the number of key bytes.
- _filter() : string
- Filter Binary Packets
- _format_log() : string
- Formats a log for printing
- _format_log_helper() : string
- Helper function for _format_log
- _generate_identifier() : string
- Generates the SSH identifier
- _get_binary_packet() : string
- Gets Binary Packets
- _get_channel_packet() : mixed
- Gets channel data
- _get_interactive_channel() : int
- Return the channel to be used with read() / write()
- _get_open_channel() : int
- Return an available open channel
- _initShell() : bool
- Creates an interactive shell
- _key_exchange() : mixed
- Key Exchange
- _keyboard_interactive_login() : bool
- Login via keyboard-interactive authentication
- _keyboard_interactive_process() : bool
- Handle the keyboard-interactive requests / responses.
- _login() : bool
- Login Helper
- _on_channel_open() : mixed
- Helper function for agent->_on_channel_open()
- _reconnect() : bool
- In situ reconnect method
- _reset_connection() : mixed
- Resets a connection for re-use
- _send_binary_packet() : bool
- Sends Binary Packets
- _send_channel_packet() : bool
- Sends channel data
- _ssh_agent_login() : bool
- Login with an ssh-agent provided key
- _string_shift() : string
- String Shift
- _updateLogHistory() : mixed
- Update packet types in log history
- disablePTY() : mixed
- Disable request-pty when using exec()
- disableQuietMode() : mixed
- Disable Quiet Mode
- disconnect() : mixed
- Disconnect
- enablePTY() : mixed
- Enable request-pty when using exec()
- enableQuietMode() : mixed
- Enable Quiet Mode
- exec() : string
- Execute Command
- getAlgorithmsNegotiated() : array<string|int, mixed>
- Return list of negotiated algorithms
- getBannerMessage() : string
- Returns the banner message.
- getCompressionAlgorithmsClient2Server() : array<string|int, mixed>
- Return a list of the compression algorithms the server supports, when receiving stuff from the client.
- getCompressionAlgorithmsServer2Client() : array<string|int, mixed>
- Return a list of the compression algorithms the server supports, when sending stuff to the client.
- getEncryptionAlgorithmsClient2Server() : array<string|int, mixed>
- Return a list of the (symmetric key) encryption algorithms the server supports, when receiving stuff from the client.
- getEncryptionAlgorithmsServer2Client() : array<string|int, mixed>
- Return a list of the (symmetric key) encryption algorithms the server supports, when sending stuff to the client.
- getErrors() : array<string|int, string>
- Returns all errors
- getExitStatus() : false|int
- Returns the exit status of an SSH command or false.
- getKexAlgorithms() : array<string|int, mixed>
- Return a list of the key exchange algorithms the server supports.
- getLanguagesClient2Server() : array<string|int, mixed>
- Return a list of the languages the server supports, when receiving stuff from the client.
- getLanguagesServer2Client() : array<string|int, mixed>
- Return a list of the languages the server supports, when sending stuff to the client.
- getLastError() : string
- Returns the last error
- getLog() : array<string|int, mixed>|false|string
- Returns a log of the packets that have been sent and received.
- getMACAlgorithmsClient2Server() : array<string|int, mixed>
- Return a list of the MAC algorithms the server supports, when receiving stuff from the client.
- getMACAlgorithmsServer2Client() : array<string|int, mixed>
- Return a list of the MAC algorithms the server supports, when sending stuff to the client.
- getServerAlgorithms() : array<string|int, mixed>
- Returns a list of algorithms the server supports
- getServerHostKeyAlgorithms() : array<string|int, mixed>
- Return a list of the host key (public key) algorithms the server supports.
- getServerIdentification() : string
- Return the server identification.
- getServerPublicHostKey() : mixed
- Returns the server public host key.
- getStdError() : mixed
- Get the output from stdError
- getSupportedCompressionAlgorithms() : array<string|int, mixed>
- Returns a list of compression algorithms that phpseclib supports
- getSupportedEncryptionAlgorithms() : array<string|int, mixed>
- Returns a list of symmetric key algorithms that phpseclib supports
- getSupportedHostKeyAlgorithms() : array<string|int, mixed>
- Returns a list of host key algorithms that phpseclib supports
- getSupportedKEXAlgorithms() : array<string|int, mixed>
- Returns a list of KEX algorithms that phpseclib supports
- getSupportedMACAlgorithms() : array<string|int, mixed>
- Returns a list of MAC algorithms that phpseclib supports
- getWindowColumns() : int
- Returns the number of columns for the terminal window size.
- getWindowRows() : int
- Returns the number of rows for the terminal window size.
- isAuthenticated() : bool
- Have you successfully been logged in?
- isConnected() : bool
- Is the connection still active?
- isPTYEnabled() : bool
- Returns whether request-pty is enabled or not
- isQuietModeEnabled() : bool
- Returns whether Quiet Mode is enabled or not
- isTimeout() : mixed
- Is timeout?
- login() : bool
- Login
- ping() : bool
- Pings a server connection, or tries to reconnect if the connection has gone down
- read() : string|bool
- Returns the output of an interactive shell
- reset() : mixed
- Closes a channel
- sendIdentificationStringFirst() : mixed
- Send Identification String First
- sendIdentificationStringLast() : mixed
- Send Identification String Last
- sendKEXINITFirst() : mixed
- Send SSH_MSG_KEXINIT First
- sendKEXINITLast() : mixed
- Send SSH_MSG_KEXINIT Last
- setCryptoEngine() : mixed
- Set Crypto Engine Mode
- setPreferredAlgorithms() : mixed
- Accepts an associative array with up to four parameters as described at <https://www.php.net/manual/en/function.ssh2-connect.php>
- setTimeout() : mixed
- Set Timeout
- setWindowColumns() : mixed
- Sets the number of columns for the terminal window size.
- setWindowRows() : mixed
- Sets the number of rows for the terminal window size.
- setWindowSize() : mixed
- Sets the number of columns and rows for the terminal window size.
- startSubsystem() : bool
- Start a subsystem.
- stopSubsystem() : bool
- Stops a subsystem.
- write() : bool
- Inputs a command into an interactive shell.
Constants
CHANNEL_AGENT_FORWARD
public
mixed
CHANNEL_AGENT_FORWARD
= 4
CHANNEL_EXEC
public
mixed
CHANNEL_EXEC
= 1
CHANNEL_KEEP_ALIVE
public
mixed
CHANNEL_KEEP_ALIVE
= 5
CHANNEL_SHELL
public
mixed
CHANNEL_SHELL
= 2
CHANNEL_SUBSYSTEM
public
mixed
CHANNEL_SUBSYSTEM
= 3
LOG_COMPLEX
Returns the message content
public
mixed
LOG_COMPLEX
= 2
LOG_MAX_SIZE
Make sure that the log never gets larger than this
public
mixed
LOG_MAX_SIZE
= 1048576
LOG_REALTIME
Outputs the content real-time
public
mixed
LOG_REALTIME
= 3
LOG_REALTIME_FILE
Dumps the content real-time to a file
public
mixed
LOG_REALTIME_FILE
= 4
LOG_SIMPLE
Returns the message numbers
public
mixed
LOG_SIMPLE
= 1
MASK_CONNECTED
public
mixed
MASK_CONNECTED
= 0x2
MASK_CONSTRUCTOR
public
mixed
MASK_CONSTRUCTOR
= 0x1
MASK_LOGIN
public
mixed
MASK_LOGIN
= 0x8
MASK_LOGIN_REQ
public
mixed
MASK_LOGIN_REQ
= 0x4
MASK_SHELL
public
mixed
MASK_SHELL
= 0x10
MASK_WINDOW_ADJUST
public
mixed
MASK_WINDOW_ADJUST
= 0x20
READ_NEXT
Returns whenever a data packet is received.
public
mixed
READ_NEXT
= 3
Some data packets may only contain a single character so it may be necessary to call read() multiple times when using this option
READ_REGEX
Returns when a string matching the regular expression $expect is found
public
mixed
READ_REGEX
= 2
READ_SIMPLE
Returns when a string matching $expect exactly is found
public
mixed
READ_SIMPLE
= 1
Properties
$agent
A System_SSH_Agent for use in the SSH2 Agent Forwarding scenario
public
System_SSH_Agent
$agent
Tags
$auth
Authentication Credentials
public
array<string|int, mixed>
$auth
= array()
Tags
$bad_key_size_fix
Some versions of OpenSSH incorrectly calculate the key size
public
bool
$bad_key_size_fix
= false
Tags
$banner_message
Banner Message
public
string
$banner_message
= ''
Quoting from the RFC, "in some jurisdictions, sending a warning message before authentication may be relevant for getting legal protection."
Tags
$binary_packet_buffer
Binary Packet Buffer
public
string|false
$binary_packet_buffer
= false
Tags
$bitmap
Execution Bitmap
public
int
$bitmap
= 0
The bits that are set represent functions that have been called already. This is used to determine if a requisite function has been successfully executed. If not, an error should be thrown.
Tags
$channel_buffers
Channel Buffers
public
array<string|int, mixed>
$channel_buffers
= array()
If a client requests a packet from one channel but receives two packets from another those packets should be placed in a buffer
Tags
$channel_extended_data_type_codes
SSH_MSG_CHANNEL_EXTENDED_DATA's data_type_codes
public
array<string|int, mixed>
$channel_extended_data_type_codes
= array()
Tags
$channel_open_failure_reasons
SSH_MSG_CHANNEL_OPEN_FAILURE 'reason codes', defined in RFC4254
public
array<string|int, mixed>
$channel_open_failure_reasons
= array()
Tags
$channel_status
Channel Status
public
array<string|int, mixed>
$channel_status
= array()
Contains the type of the last sent message
Tags
$compression_algorithms_client_to_server
Compression Algorithms: Client to Server
public
array<string|int, mixed>|false
$compression_algorithms_client_to_server
= false
Tags
$compression_algorithms_server_to_client
Compression Algorithms: Server to Client
public
array<string|int, mixed>|false
$compression_algorithms_server_to_client
= false
Tags
$crypto_engine
Crypto Engine
public
int
$crypto_engine
= false
Tags
$curTimeout
Current Timeout
public
mixed
$curTimeout
Tags
$decrypt
Server to Client Encryption Object
public
object
$decrypt
= false
Tags
$decrypt_block_size
Block Size for Client to Server Encryption
public
int
$decrypt_block_size
= 8
Tags
$disconnect_reasons
Disconnection Message 'reason codes' defined in RFC4253
public
array<string|int, mixed>
$disconnect_reasons
= array()
Tags
$encrypt
Client to Server Encryption Object
public
object
$encrypt
= false
Tags
$encrypt_block_size
Block Size for Server to Client Encryption
public
int
$encrypt_block_size
= 8
"Note that the length of the concatenation of 'packet_length', 'padding_length', 'payload', and 'random padding' MUST be a multiple of the cipher block size or 8, whichever is larger. This constraint MUST be enforced, even when using stream ciphers."
-- http://tools.ietf.org/html/rfc4253#section-6
Tags
$encryption_algorithms_client_to_server
Encryption Algorithms: Client to Server
public
array<string|int, mixed>|false
$encryption_algorithms_client_to_server
= false
Tags
$encryption_algorithms_server_to_client
Encryption Algorithms: Server to Client
public
array<string|int, mixed>|false
$encryption_algorithms_server_to_client
= false
Tags
$errors
Error information
public
string
$errors
= array()
Tags
$exchange_hash
Exchange hash
public
string
$exchange_hash
= false
The current exchange hash
Tags
$exit_status
Exit status returned from ssh if any
public
int
$exit_status
Tags
$fsock
The Socket Object
public
object
$fsock
Tags
$get_seq_no
Get Sequence Number
public
int
$get_seq_no
= 0
See 'Section 6.4. Data Integrity' of rfc4253 for more info.
Tags
$hmac_check
Server to Client HMAC Object
public
object
$hmac_check
= false
Tags
$hmac_create
Client to Server HMAC Object
public
object
$hmac_create
= false
Tags
$hmac_size
Size of server to client HMAC
public
int
$hmac_size
= false
We need to know how big the HMAC will be for the server to client direction so that we know how many bytes to read. For the client to server side, the HMAC object will make the HMAC as long as it needs to be. All we need to do is append it.
Tags
$host
Hostname
public
string
$host
Tags
$identifier
The SSH identifier
public
string
$identifier
Tags
$in_request_pty_exec
Flag set while exec() is running when using enablePTY()
public
bool
$in_request_pty_exec
= false
Tags
$in_subsystem
Flag set after startSubsystem() is called
public
bool
$in_subsystem
Tags
$interactiveBuffer
Interactive Buffer
public
array<string|int, mixed>
$interactiveBuffer
= ''
Tags
$is_timeout
Did read() timeout or return normally?
public
bool
$is_timeout
= false
Tags
$kex_algorithm
Key Exchange Algorithm
public
string|false
$kex_algorithm
= false
Tags
$kex_algorithms
Key Exchange Algorithms
public
array<string|int, mixed>|false
$kex_algorithms
= false
Tags
$kex_dh_group_size_max
Maximum Diffie-Hellman Group Bit Size in RFC 4419 Key Exchange Methods
public
int
$kex_dh_group_size_max
= 4096
Tags
$kex_dh_group_size_min
Minimum Diffie-Hellman Group Bit Size in RFC 4419 Key Exchange Methods
public
int
$kex_dh_group_size_min
= 1536
Tags
$kex_dh_group_size_preferred
Preferred Diffie-Hellman Group Bit Size in RFC 4419 Key Exchange Methods
public
int
$kex_dh_group_size_preferred
= 2048
Tags
$keyboard_requests_responses
Keyboard Interactive Request / Responses
public
array<string|int, mixed>
$keyboard_requests_responses
= array()
Tags
$languages_client_to_server
Languages: Client to Server
public
array<string|int, mixed>|false
$languages_client_to_server
= false
Tags
$languages_server_to_client
Languages: Server to Client
public
array<string|int, mixed>|false
$languages_server_to_client
= false
Tags
$last_interactive_response
The Last Interactive Response
public
string
$last_interactive_response
= ''
Tags
$last_packet
Time of first network activity
public
int
$last_packet
Tags
$log_boundary
Log Boundary
public
string
$log_boundary
= ':'
Tags
$log_long_width
Log Long Width
public
int
$log_long_width
= 65
Tags
$log_short_width
Log Short Width
public
int
$log_short_width
= 16
Tags
$log_size
Current log size
public
int
$log_size
Should never exceed self::LOG_MAX_SIZE
Tags
$mac_algorithms_client_to_server
MAC Algorithms: Client to Server
public
array<string|int, mixed>|false
$mac_algorithms_client_to_server
= false
Tags
$mac_algorithms_server_to_client
MAC Algorithms: Server to Client
public
array<string|int, mixed>|false
$mac_algorithms_server_to_client
= false
Tags
$message_log
Message Log
public
array<string|int, mixed>
$message_log
= array()
Tags
$message_number_log
Message Number Log
public
array<string|int, mixed>
$message_number_log
= array()
Tags
$message_numbers
Message Numbers
public
array<string|int, mixed>
$message_numbers
= array()
Tags
$packet_size_client_to_server
Packet Size
public
array<string|int, mixed>
$packet_size_client_to_server
= array()
Maximum packet size indexed by channel
Tags
$port
Port Number
public
int
$port
Tags
$preferred
Preferred Algorithms
public
array<string|int, mixed>
$preferred
= array()
Tags
$preferred_signature_format
Preferred Signature Format
public
string|false
$preferred_signature_format
= false
Tags
$quiet_mode
Flag to suppress stderr from output
public
mixed
$quiet_mode
= false
Tags
$realtime_log_file
Real-time log file pointer
public
resource
$realtime_log_file
Tags
$realtime_log_size
Real-time log file size
public
int
$realtime_log_size
Tags
$realtime_log_wrap
Real-time log file wrap boolean
public
mixed
$realtime_log_wrap
Tags
$request_pty
Flag to request a PTY when using exec()
public
bool
$request_pty
= false
Tags
$retry_connect
Should we try to re-connect to re-establish keys?
public
bool
$retry_connect
= false
Tags
$send_id_string_first
Send the identification string first?
public
bool
$send_id_string_first
= true
Tags
$send_kex_first
Send the key exchange initiation packet first?
public
bool
$send_kex_first
= true
Tags
$send_seq_no
Send Sequence Number
public
int
$send_seq_no
= 0
See 'Section 6.4. Data Integrity' of rfc4253 for more info.
Tags
$server_channels
Server Channels
public
array<string|int, mixed>
$server_channels
= array()
Maps client channels to server channels
Tags
$server_host_key_algorithms
Server Host Key Algorithms
public
array<string|int, mixed>|false
$server_host_key_algorithms
= false
Tags
$server_identifier
Server Identifier
public
array<string|int, mixed>|false
$server_identifier
= false
Tags
$server_public_host_key
Server Public Host Key
public
string
$server_public_host_key
Tags
$session_id
Session identifier
public
string
$session_id
= false
"The exchange hash H from the first key exchange is additionally used as the session identifier, which is a unique identifier for this connection."
-- http://tools.ietf.org/html/rfc4253#section-7.2
Tags
$signature
Server signature
public
string
$signature
= ''
Verified against $this->session_id
Tags
$signature_format
Server signature format
public
string
$signature_format
= ''
ssh-rsa or ssh-dss.
Tags
$signature_validated
Has the signature been validated?
public
bool
$signature_validated
= false
Tags
$stdErrorLog
Contents of stdError
public
string
$stdErrorLog
Tags
$terminal_modes
Terminal Modes
public
array<string|int, mixed>
$terminal_modes
= array()
Tags
$timeout
Timeout
public
mixed
$timeout
Tags
$window_resize
What we resize the window to
public
int
$window_resize
= 0x40000000
When PuTTY resizes the window it doesn't add an additional 0x7FFFFFFF bytes - it adds 0x40000000 bytes. Some SFTP clients (GoAnywhere) don't support adding 0x7FFFFFFF to the window size after the fact so we'll just do what PuTTY does
Tags
$window_size
The Window Size
public
int
$window_size
= 0x7fffffff
Bytes the other party can send before it must wait for the window to be adjusted (0x7FFFFFFF = 2GB)
Tags
$window_size_client_to_server
Window size, client to server
public
array<string|int, mixed>
$window_size_client_to_server
= array()
Window size indexed by channel
Tags
$window_size_server_to_client
Window size, server to client
public
array<string|int, mixed>
$window_size_server_to_client
= array()
Window size indexed by channel
Tags
$windowColumns
Number of columns for terminal window size
public
int
$windowColumns
= 80
Tags
$windowRows
Number of columns for terminal window size
public
int
$windowRows
= 24
Tags
Methods
__construct()
Default Constructor.
public
__construct(mixed $host[, int $port = 22 ][, int $timeout = 10 ]) : SSH2
$host can either be a string, representing the host, or a stream resource.
Parameters
- $host : mixed
- $port : int = 22
- $timeout : int = 10
Tags
Return values
SSH2 —__destruct()
Destructor.
public
__destruct() : mixed
Will be called, automatically, if you're supporting just PHP5. If you're supporting PHP4, you'll need to call disconnect().
Tags
Return values
mixed —_append_log()
Logs data packets
public
_append_log(mixed $message_number, mixed $message) : mixed
Makes sure that only the last 1MB worth of packets will be logged
Parameters
- $message_number : mixed
- $message : mixed
Tags
Return values
mixed —_array_intersect_first()
Returns the first value of the intersection of two arrays or false if the intersection is empty. The order is defined by the first parameter.
public
_array_intersect_first(array<string|int, mixed> $array1, array<string|int, mixed> $array2) : mixed
Parameters
- $array1 : array<string|int, mixed>
- $array2 : array<string|int, mixed>
Tags
Return values
mixed —False if intersection is empty, else intersected value.
_bad_algorithm_candidate()
Tests whether or not proposed algorithm has a potential for issues
public
_bad_algorithm_candidate(string $algorithm) : bool
Parameters
- $algorithm : string
-
Name of the encryption algorithm
Tags
Return values
bool —_close_channel()
Closes and flushes a channel
public
_close_channel(int $client_channel[, bool $want_reply = false ]) : bool
\phpseclib\Net\SSH2 doesn't properly close most channels. For exec() channels are normally closed by the server and for SFTP channels are presumably closed when the client disconnects. This functions is intended for SCP more than anything.
Parameters
- $client_channel : int
- $want_reply : bool = false
Tags
Return values
bool —_connect()
Connect to an SSHv2 server
public
_connect() : bool
Tags
Return values
bool —_define_array()
Define Array
public
_define_array() : mixed
Takes any number of arrays whose indices are integers and whose values are strings and defines a bunch of named constants from it, using the value as the name of the constant and the index as the value of the constant. If any of the constants that would be defined already exists, none of the constants will be defined.
Tags
Return values
mixed —_disconnect()
Disconnect
public
_disconnect(int $reason) : bool
Parameters
- $reason : int
Tags
Return values
bool —_encryption_algorithm_to_crypt_instance()
Maps an encryption algorithm name to an instance of a subclass of \phpseclib\Crypt\Base.
public
_encryption_algorithm_to_crypt_instance(string $algorithm) : mixed
Parameters
- $algorithm : string
-
Name of the encryption algorithm
Tags
Return values
mixed —Instance of \phpseclib\Crypt\Base or null for unknown
_encryption_algorithm_to_key_size()
Maps an encryption algorithm name to the number of key bytes.
public
_encryption_algorithm_to_key_size(string $algorithm) : int|null
Parameters
- $algorithm : string
-
Name of the encryption algorithm
Tags
Return values
int|null —Number of bytes as an integer or null for unknown
_filter()
Filter Binary Packets
public
_filter(mixed $payload, mixed $skip_channel_filter) : string
Because some binary packets need to be ignored...
Parameters
- $payload : mixed
- $skip_channel_filter : mixed
Tags
Return values
string —_format_log()
Formats a log for printing
public
_format_log(array<string|int, mixed> $message_log, array<string|int, mixed> $message_number_log) : string
Parameters
- $message_log : array<string|int, mixed>
- $message_number_log : array<string|int, mixed>
Tags
Return values
string —_format_log_helper()
Helper function for _format_log
public
_format_log_helper(array<string|int, mixed> $matches) : string
For use with preg_replace_callback()
Parameters
- $matches : array<string|int, mixed>
Tags
Return values
string —_generate_identifier()
Generates the SSH identifier
public
_generate_identifier() : string
You should overwrite this method in your own class if you want to use another identifier
Tags
Return values
string —_get_binary_packet()
Gets Binary Packets
public
_get_binary_packet([mixed $skip_channel_filter = false ]) : string
See '6. Binary Packet Protocol' of rfc4253 for more info.
Parameters
- $skip_channel_filter : mixed = false
Tags
Return values
string —_get_channel_packet()
Gets channel data
public
_get_channel_packet( $client_channel[, mixed $skip_extended = false ]) : mixed
Returns the data as a string if it's available and false if not.
Parameters
Tags
Return values
mixed —_get_interactive_channel()
Return the channel to be used with read() / write()
public
_get_interactive_channel() : int
Tags
Return values
int —_get_open_channel()
Return an available open channel
public
_get_open_channel() : int
Tags
Return values
int —_initShell()
Creates an interactive shell
public
_initShell() : bool
Tags
Return values
bool —_key_exchange()
Key Exchange
public
_key_exchange([string $kexinit_payload_server = false ]) : mixed
Parameters
- $kexinit_payload_server : string = false
-
optional
Tags
Return values
mixed —_keyboard_interactive_login()
Login via keyboard-interactive authentication
public
_keyboard_interactive_login(string $username, string $password) : bool
See RFC4256 for details. This is not a full-featured keyboard-interactive authenticator.
Parameters
- $username : string
- $password : string
Tags
Return values
bool —_keyboard_interactive_process()
Handle the keyboard-interactive requests / responses.
public
_keyboard_interactive_process() : bool
Tags
Return values
bool —_login()
Login Helper
public
_login(string $username) : bool
Parameters
- $username : string
Tags
Return values
bool —_on_channel_open()
Helper function for agent->_on_channel_open()
public
_on_channel_open() : mixed
Used when channels are created to inform agent of said channel opening. Must be called after channel open confirmation received
Tags
Return values
mixed —_reconnect()
In situ reconnect method
public
_reconnect() : bool
Tags
Return values
bool —_reset_connection()
Resets a connection for re-use
public
_reset_connection(int $reason) : mixed
Parameters
- $reason : int
Tags
Return values
mixed —_send_binary_packet()
Sends Binary Packets
public
_send_binary_packet(string $data[, string $logged = null ]) : bool
See '6. Binary Packet Protocol' of rfc4253 for more info.
Parameters
- $data : string
- $logged : string = null
Tags
Return values
bool —_send_channel_packet()
Sends channel data
public
_send_channel_packet(int $client_channel, string $data) : bool
Spans multiple SSH_MSG_CHANNEL_DATAs if appropriate
Parameters
- $client_channel : int
- $data : string
Tags
Return values
bool —_ssh_agent_login()
Login with an ssh-agent provided key
public
_ssh_agent_login(string $username, Agent $agent) : bool
Parameters
- $username : string
- $agent : Agent
Tags
Return values
bool —_string_shift()
String Shift
public
_string_shift(string &$string[, int $index = 1 ]) : string
Inspired by array_shift
Parameters
- $string : string
- $index : int = 1
Tags
Return values
string —_updateLogHistory()
Update packet types in log history
public
_updateLogHistory(string $old, string $new) : mixed
Parameters
- $old : string
- $new : string
Tags
Return values
mixed —disablePTY()
Disable request-pty when using exec()
public
disablePTY() : mixed
Tags
Return values
mixed —disableQuietMode()
Disable Quiet Mode
public
disableQuietMode() : mixed
Show stderr in output
Tags
Return values
mixed —disconnect()
Disconnect
public
disconnect() : mixed
Tags
Return values
mixed —enablePTY()
Enable request-pty when using exec()
public
enablePTY() : mixed
Tags
Return values
mixed —enableQuietMode()
Enable Quiet Mode
public
enableQuietMode() : mixed
Suppress stderr from output
Tags
Return values
mixed —exec()
Execute Command
public
exec(string $command[, callable $callback = null ]) : string
If $callback is set to false then \phpseclib\Net\SSH2::_get_channel_packet(self::CHANNEL_EXEC) will need to be called manually. In all likelihood, this is not a feature you want to be taking advantage of.
Parameters
- $command : string
- $callback : callable = null
Tags
Return values
string —getAlgorithmsNegotiated()
Return list of negotiated algorithms
public
getAlgorithmsNegotiated() : array<string|int, mixed>
Uses the same format as https://www.php.net/ssh2-methods-negotiated
Tags
Return values
array<string|int, mixed> —getBannerMessage()
Returns the banner message.
public
getBannerMessage() : string
Quoting from the RFC, "in some jurisdictions, sending a warning message before authentication may be relevant for getting legal protection."
Tags
Return values
string —getCompressionAlgorithmsClient2Server()
Return a list of the compression algorithms the server supports, when receiving stuff from the client.
public
getCompressionAlgorithmsClient2Server() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getCompressionAlgorithmsServer2Client()
Return a list of the compression algorithms the server supports, when sending stuff to the client.
public
getCompressionAlgorithmsServer2Client() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getEncryptionAlgorithmsClient2Server()
Return a list of the (symmetric key) encryption algorithms the server supports, when receiving stuff from the client.
public
getEncryptionAlgorithmsClient2Server() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getEncryptionAlgorithmsServer2Client()
Return a list of the (symmetric key) encryption algorithms the server supports, when sending stuff to the client.
public
getEncryptionAlgorithmsServer2Client() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getErrors()
Returns all errors
public
getErrors() : array<string|int, string>
Tags
Return values
array<string|int, string> —getExitStatus()
Returns the exit status of an SSH command or false.
public
getExitStatus() : false|int
Tags
Return values
false|int —getKexAlgorithms()
Return a list of the key exchange algorithms the server supports.
public
getKexAlgorithms() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getLanguagesClient2Server()
Return a list of the languages the server supports, when receiving stuff from the client.
public
getLanguagesClient2Server() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getLanguagesServer2Client()
Return a list of the languages the server supports, when sending stuff to the client.
public
getLanguagesServer2Client() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getLastError()
Returns the last error
public
getLastError() : string
Tags
Return values
string —getLog()
Returns a log of the packets that have been sent and received.
public
getLog() : array<string|int, mixed>|false|string
Returns a string if NET_SSH2_LOGGING == self::LOG_COMPLEX, an array if NET_SSH2_LOGGING == self::LOG_SIMPLE and false if !defined('NET_SSH2_LOGGING')
Tags
Return values
array<string|int, mixed>|false|string —getMACAlgorithmsClient2Server()
Return a list of the MAC algorithms the server supports, when receiving stuff from the client.
public
getMACAlgorithmsClient2Server() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getMACAlgorithmsServer2Client()
Return a list of the MAC algorithms the server supports, when sending stuff to the client.
public
getMACAlgorithmsServer2Client() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getServerAlgorithms()
Returns a list of algorithms the server supports
public
getServerAlgorithms() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getServerHostKeyAlgorithms()
Return a list of the host key (public key) algorithms the server supports.
public
getServerHostKeyAlgorithms() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getServerIdentification()
Return the server identification.
public
getServerIdentification() : string
Tags
Return values
string —getServerPublicHostKey()
Returns the server public host key.
public
getServerPublicHostKey() : mixed
Caching this the first time you connect to a server and checking the result on subsequent connections is recommended. Returns false if the server signature is not signed correctly with the public host key.
Tags
Return values
mixed —getStdError()
Get the output from stdError
public
getStdError() : mixed
Tags
Return values
mixed —getSupportedCompressionAlgorithms()
Returns a list of compression algorithms that phpseclib supports
public
getSupportedCompressionAlgorithms() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getSupportedEncryptionAlgorithms()
Returns a list of symmetric key algorithms that phpseclib supports
public
getSupportedEncryptionAlgorithms() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getSupportedHostKeyAlgorithms()
Returns a list of host key algorithms that phpseclib supports
public
getSupportedHostKeyAlgorithms() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getSupportedKEXAlgorithms()
Returns a list of KEX algorithms that phpseclib supports
public
getSupportedKEXAlgorithms() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getSupportedMACAlgorithms()
Returns a list of MAC algorithms that phpseclib supports
public
getSupportedMACAlgorithms() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —getWindowColumns()
Returns the number of columns for the terminal window size.
public
getWindowColumns() : int
Tags
Return values
int —getWindowRows()
Returns the number of rows for the terminal window size.
public
getWindowRows() : int
Tags
Return values
int —isAuthenticated()
Have you successfully been logged in?
public
isAuthenticated() : bool
Tags
Return values
bool —isConnected()
Is the connection still active?
public
isConnected() : bool
Tags
Return values
bool —isPTYEnabled()
Returns whether request-pty is enabled or not
public
isPTYEnabled() : bool
Tags
Return values
bool —isQuietModeEnabled()
Returns whether Quiet Mode is enabled or not
public
isQuietModeEnabled() : bool
Tags
Return values
bool —isTimeout()
Is timeout?
public
isTimeout() : mixed
Did exec() or read() return because they timed out or because they encountered the end?
Tags
Return values
mixed —login()
Login
public
login(string $username) : bool
The $password parameter can be a plaintext password, a \phpseclib\Crypt\RSA object or an array
Parameters
- $username : string
Tags
Return values
bool —ping()
Pings a server connection, or tries to reconnect if the connection has gone down
public
ping() : bool
Inspired by http://php.net/manual/en/mysqli.ping.php
Tags
Return values
bool —read()
Returns the output of an interactive shell
public
read([string $expect = '' ][, int $mode = self::READ_SIMPLE ]) : string|bool
Returns when there's a match for $expect, which can take the form of a string literal or, if $mode == self::READ_REGEX, a regular expression.
Parameters
- $expect : string = ''
- $mode : int = self::READ_SIMPLE
Tags
Return values
string|bool —reset()
Closes a channel
public
reset() : mixed
If read() timed out you might want to just close the channel and have it auto-restart on the next read() call
Tags
Return values
mixed —sendIdentificationStringFirst()
Send Identification String First
public
sendIdentificationStringFirst() : mixed
https://tools.ietf.org/html/rfc4253#section-4.2 says "when the connection has been established, both sides MUST send an identification string". It does not say which side sends it first. In theory it shouldn't matter but it is a fact of life that some SSH servers are simply buggy
Tags
Return values
mixed —sendIdentificationStringLast()
Send Identification String Last
public
sendIdentificationStringLast() : mixed
https://tools.ietf.org/html/rfc4253#section-4.2 says "when the connection has been established, both sides MUST send an identification string". It does not say which side sends it first. In theory it shouldn't matter but it is a fact of life that some SSH servers are simply buggy
Tags
Return values
mixed —sendKEXINITFirst()
Send SSH_MSG_KEXINIT First
public
sendKEXINITFirst() : mixed
https://tools.ietf.org/html/rfc4253#section-7.1 says "key exchange begins by each sending sending the [SSH_MSG_KEXINIT] packet". It does not say which side sends it first. In theory it shouldn't matter but it is a fact of life that some SSH servers are simply buggy
Tags
Return values
mixed —sendKEXINITLast()
Send SSH_MSG_KEXINIT Last
public
sendKEXINITLast() : mixed
https://tools.ietf.org/html/rfc4253#section-7.1 says "key exchange begins by each sending sending the [SSH_MSG_KEXINIT] packet". It does not say which side sends it first. In theory it shouldn't matter but it is a fact of life that some SSH servers are simply buggy
Tags
Return values
mixed —setCryptoEngine()
Set Crypto Engine Mode
public
setCryptoEngine(int $engine) : mixed
Possible $engine values: CRYPT_MODE_INTERNAL, CRYPT_MODE_MCRYPT
Parameters
- $engine : int
Tags
Return values
mixed —setPreferredAlgorithms()
Accepts an associative array with up to four parameters as described at <https://www.php.net/manual/en/function.ssh2-connect.php>
public
setPreferredAlgorithms(array<string|int, mixed> $methods) : mixed
Parameters
- $methods : array<string|int, mixed>
Tags
Return values
mixed —setTimeout()
Set Timeout
public
setTimeout(mixed $timeout) : mixed
$ssh->exec('ping 127.0.0.1'); on a Linux host will never return and will run indefinitely. setTimeout() makes it so it'll timeout. Setting $timeout to false or 0 will mean there is no timeout.
Parameters
- $timeout : mixed
Tags
Return values
mixed —setWindowColumns()
Sets the number of columns for the terminal window size.
public
setWindowColumns(int $value) : mixed
Parameters
- $value : int
Tags
Return values
mixed —setWindowRows()
Sets the number of rows for the terminal window size.
public
setWindowRows(int $value) : mixed
Parameters
- $value : int
Tags
Return values
mixed —setWindowSize()
Sets the number of columns and rows for the terminal window size.
public
setWindowSize([int $columns = 80 ][, int $rows = 24 ]) : mixed
Parameters
- $columns : int = 80
- $rows : int = 24
Tags
Return values
mixed —startSubsystem()
Start a subsystem.
public
startSubsystem(string $subsystem) : bool
Right now only one subsystem at a time is supported. To support multiple subsystem's stopSubsystem() could accept a string that contained the name of the subsystem, but at that point, only one subsystem of each type could be opened. To support multiple subsystem's of the same name maybe it'd be best if startSubsystem() generated a new channel id and returns that and then that that was passed into stopSubsystem() but that'll be saved for a future date and implemented if there's sufficient demand for such a feature.
Parameters
- $subsystem : string
Tags
Return values
bool —stopSubsystem()
Stops a subsystem.
public
stopSubsystem() : bool
Tags
Return values
bool —write()
Inputs a command into an interactive shell.
public
write(string $cmd) : bool
Parameters
- $cmd : string