Ref/ssh2-Phpdoc专题

ssh2_auth_agent

Authenticate over SSH using the ssh agent

说明

bool <span class="methodname">ssh2_auth_agent ( <span class="methodparam">resource $session , string $username )

Authenticate over SSH using the ssh agent

Note: The <span class="function">ssh2_auth_agent function will only be available when the ssh2 extension is compiled with libssh >= 1.2.3.

参数

session
An SSH connection link identifier, obtained from a call to <span class="function">ssh2_connect.

username
Remote user name.

返回值

成功时返回 true, 或者在失败时返回 false

范例

示例 #1 Authenticating with a ssh agent

<?php
$connection = ssh2_connect('shell.example.com', 22);

if (ssh2_auth_agent($connection, 'username')) {
  echo "Authentication Successful!\n";
} else {
  die('Authentication Failed...');
}
?>

ssh2_auth_hostbased_file

Authenticate using a public hostkey

说明

bool <span class="methodname">ssh2_auth_hostbased_file ( <span class="methodparam">resource $session , string $username , <span class="type">string $hostname , <span class="methodparam">string $pubkeyfile , <span class="type">string $privkeyfile [, <span class="methodparam">string $passphrase [, <span class="type">string $local_username ]] )

Authenticate using a public hostkey read from a file.

参数

session
An SSH connection link identifier, obtained from a call to <span class="function">ssh2_connect.

username

hostname

pubkeyfile

privkeyfile

passphrase
If privkeyfile is encrypted (which it should be), the passphrase must be provided.

local_username
If local_username is omitted, then the value for username will be used for it.

返回值

成功时返回 true, 或者在失败时返回 false

范例

示例 #1 Authentication using a public hostkey

<?php
$connection = ssh2_connect('shell.example.com', 22, array('hostkey'=>'ssh-rsa'));

if (ssh2_auth_hostbased_file($connection, 'remoteusername', 'myhost.example.com',
                             '/usr/local/etc/hostkey_rsa.pub',
                             '/usr/local/etc/hostkey_rsa', 'secret',
                             'localusername')) {
  echo "Public Key Hostbased Authentication Successful\n";
} else {
  die('Public Key Hostbased Authentication Failed');
}
?>

注释

Note:

ssh2_auth_hostbased_file requires libssh2 >= 0.7 and PHP/SSH2 >= 0.7

ssh2_auth_none

Authenticate as "none"

说明

mixed <span class="methodname">ssh2_auth_none ( <span class="methodparam">resource $session , string $username )

Attempt "none" authentication which usually will (and should) fail. As part of the failure, this function will return an array of accepted authentication methods.

参数

session
An SSH connection link identifier, obtained from a call to <span class="function">ssh2_connect.

username
Remote user name.

返回值

Returns true if the server does accept "none" as an authentication method, or an array of accepted authentication methods on failure.

范例

示例 #1 Retrieving a list of authentication methods

<?php
$connection = ssh2_connect('shell.example.com', 22);

$auth_methods = ssh2_auth_none($connection, 'user');

if (in_array('password', $auth_methods)) {
  echo "Server supports password based authentication\n";
}
?>

ssh2_auth_password

Authenticate over SSH using a plain password

说明

bool <span class="methodname">ssh2_auth_password ( <span class="methodparam">resource $session , string $username , <span class="type">string $password )

Authenticate over SSH using a plain password. Since version 0.12 this function also supports keyboard_interactive method.

参数

session
An SSH connection link identifier, obtained from a call to <span class="function">ssh2_connect.

username
Remote user name.

password
Password for username

返回值

成功时返回 true, 或者在失败时返回 false

范例

示例 #1 Authenticating with a password

<?php
$connection = ssh2_connect('shell.example.com', 22);

if (ssh2_auth_password($connection, 'username', 'secret')) {
  echo "Authentication Successful!\n";
} else {
  die('Authentication Failed...');
}
?>

ssh2_auth_pubkey_file

Authenticate using a public key

说明

bool <span class="methodname">ssh2_auth_pubkey_file ( <span class="methodparam">resource $session , string $username , <span class="type">string $pubkeyfile , <span class="methodparam">string $privkeyfile [, <span class="type">string $passphrase ] )

Authenticate using a public key read from a file.

参数

session
An SSH connection link identifier, obtained from a call to <span class="function">ssh2_connect.

username

pubkeyfile
The public key file needs to be in OpenSSH's format. It should look something like:

ssh-rsa AAAAB3NzaC1yc2EAAA....NX6sqSnHA8= rsa-key-20121110

privkeyfile

passphrase
If privkeyfile is encrypted (which it should be), the passphrase must be provided.

返回值

成功时返回 true, 或者在失败时返回 false

范例

示例 #1 Authentication using a public key

<?php
$connection = ssh2_connect('shell.example.com', 22, array('hostkey'=>'ssh-rsa'));

if (ssh2_auth_pubkey_file($connection, 'username',
                          '/home/username/.ssh/id_rsa.pub',
                          '/home/username/.ssh/id_rsa', 'secret')) {
  echo "Public Key Authentication Successful\n";
} else {
  die('Public Key Authentication Failed');
}
?>

注释

Note:

The underlying libssh library doesn't support partial auths very cleanly That is, if you need to supply both a public key and a password it will appear as if this function has failed. In this particular case a failure from this call may just mean that auth hasn't been completed yet. You would need to ignore this failure and continue on and call <span class="function">ssh2_auth_password in order to complete authentication.

ssh2_connect

Connect to an SSH server

说明

resource <span class="methodname">ssh2_connect ( <span class="methodparam">string $host [, int $port<span class="initializer"> = 22 [, <span class="methodparam">array $methods [, array $callbacks ]]] )

Establish a connection to a remote SSH server.

Once connected, the client should verify the server's hostkey using ssh2_fingerprint, then authenticate using either password or public key.

参数

host

port

methods
methods may be an associative array with up to four parameters as described below.

Index Meaning Supported Values*
kex List of key exchange methods to advertise, comma separated in order of preference. diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, and diffie-hellman-group-exchange-sha1
hostkey List of hostkey methods to advertise, comma separated in order of preference. ssh-rsa and ssh-dss
client_to_server Associative array containing crypt, compression, and message authentication code (MAC) method preferences for messages sent from client to server.  
server_to_client Associative array containing crypt, compression, and message authentication code (MAC) method preferences for messages sent from server to client.  

* - Supported Values are dependent on methods supported by underlying library. See » libssh2 documentation for additional information.

Index Meaning Supported Values*
crypt List of crypto methods to advertise, comma separated in order of preference. [email protected], aes256-cbc, aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, and none**
comp List of compression methods to advertise, comma separated in order of preference. zlib and none
mac List of MAC methods to advertise, comma separated in order of preference. hmac-sha1, hmac-sha1-96, hmac-ripemd160, [email protected], and none**

Note: Crypt and MAC method "none"

For security reasons, none is disabled by the underlying » libssh2 library unless explicitly enabled during build time by using the appropriate ./configure options. See documentation for the underlying library for more information.

callbacks
callbacks may be an associative array with any or all of the following parameters.

Index Meaning Prototype
ignore Name of function to call when an SSH2_MSG_IGNORE packet is received void ignore_cb($message)
debug Name of function to call when an SSH2_MSG_DEBUG packet is received void debug_cb($message, $language, $always_display)
macerror Name of function to call when a packet is received but the message authentication code failed. If the callback returns true, the mismatch will be ignored, otherwise the connection will be terminated. bool macerror_cb($packet)
disconnect Name of function to call when an SSH2_MSG_DISCONNECT packet is received void disconnect_cb($reason, $message, $language)

返回值

Returns a resource on success, or false on error.

范例

示例 #1 ssh2_connect example

Open a connection forcing 3des-cbc when sending packets, any strength aes cipher when receiving packets, no compression in either direction, and Group1 key exchange.

<?php
/* Notify the user if the server terminates the connection */
function my_ssh_disconnect($reason, $message, $language) {
  printf("Server disconnected with reason code [%d] and message: %s\n",
         $reason, $message);
}

$methods = array(
  'kex' => 'diffie-hellman-group1-sha1',
  'client_to_server' => array(
    'crypt' => '3des-cbc',
    'comp' => 'none'),
  'server_to_client' => array(
    'crypt' => 'aes256-cbc,aes192-cbc,aes128-cbc',
    'comp' => 'none'));

$callbacks = array('disconnect' => 'my_ssh_disconnect');

$connection = ssh2_connect('shell.example.com', 22, $methods, $callbacks);
if (!$connection) die('Connection failed');
?>

参见

  • ssh2_fingerprint
  • ssh2_auth_none
  • ssh2_auth_password
  • ssh2_auth_pubkey_file
  • ssh2_disconnect

ssh2_disconnect

Close a connection to a remote SSH server

说明

bool <span class="methodname">ssh2_disconnect ( <span class="methodparam">resource $session )

Close a connection to a remote SSH server.

参数

session
An SSH connection link identifier, obtained from a call to <span class="function">ssh2_connect.

返回值

成功时返回 true, 或者在失败时返回 false

参见

  • ssh2_connect

ssh2_exec

Execute a command on a remote server

说明

resource<span class="type">false <span class="methodname">ssh2_exec ( <span class="type">resource $session , <span class="methodparam">string $command [, string $pty [, <span class="type">array $env [, <span class="methodparam">int $width<span class="initializer"> = 80 [, <span class="methodparam">int $height<span class="initializer"> = 25 [, <span class="methodparam">int $width_height_type = SSH2_TERM_UNIT_CHARS ]]]]] )

Execute a command at the remote end and allocate a channel for it.

参数

session
An SSH connection link identifier, obtained from a call to <span class="function">ssh2_connect.

command

pty

env
env may be passed as an associative array of name/value pairs to set in the target environment.

width
Width of the virtual terminal.

height
Height of the virtual terminal.

width_height_type
width_height_type should be one of SSH2_TERM_UNIT_CHARS or SSH2_TERM_UNIT_PIXELS.

返回值

Returns a stream on success 或者在失败时返回 false.

范例

示例 #1 Executing a command

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream = ssh2_exec($connection, '/usr/local/bin/php -i');
?>

参见

  • ssh2_connect
  • ssh2_shell
  • ssh2_tunnel

ssh2_fetch_stream

Fetch an extended data stream

说明

resource <span class="methodname">ssh2_fetch_stream ( <span class="methodparam">resource $channel , int $streamid )

Fetches an alternate substream associated with an SSH2 channel stream. The SSH2 protocol currently defines only one substream, STDERR, which has a substream ID of SSH2_STREAM_STDERR (defined as 1).

参数

channel

streamid
An SSH2 channel stream.

返回值

Returns the requested stream resource.

范例

示例 #1 Opening a shell and retrieving the stderr stream associated with it

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stdio_stream = ssh2_shell($connection);
$stderr_stream = ssh2_fetch_stream($stdio_stream, SSH2_STREAM_STDERR);
?>

参见

  • ssh2_shell
  • ssh2_exec
  • ssh2_connect

ssh2_fingerprint

Retrieve fingerprint of remote server

说明

string <span class="methodname">ssh2_fingerprint ( <span class="methodparam">resource $session [, int $flags = SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX ] )

Returns a server hostkey hash from an active session.

参数

session
An SSH connection link identifier, obtained from a call to <span class="function">ssh2_connect.

flags
flags may be either of SSH2_FINGERPRINT_MD5 or SSH2_FINGERPRINT_SHA1 logically ORed with SSH2_FINGERPRINT_HEX or SSH2_FINGERPRINT_RAW.

返回值

Returns the hostkey hash as a string.

范例

示例 #1 Checking the fingerprint against a known value

<?php
$known_host = '6F89C2F0A719B30CC38ABDF90755F2E4';

$connection = ssh2_connect('shell.example.com', 22);

$fingerprint = ssh2_fingerprint($connection,
               SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX);

if ($fingerprint != $known_host) {
  die("HOSTKEY MISMATCH!\n" .
      "Possible Man-In-The-Middle Attack?");
}
?>

ssh2_methods_negotiated

Return list of negotiated methods

说明

array <span class="methodname">ssh2_methods_negotiated ( <span class="methodparam">resource $session )

Returns list of negotiated methods.

参数

session
An SSH connection link identifier, obtained from a call to <span class="function">ssh2_connect.

返回值

范例

示例 #1 Determining what methods were negotiated

<?php
$connection = ssh2_connect('shell.example.com', 22);
$methods = ssh2_methods_negotiated($connection);

echo "Encryption keys were negotiated using: {$methods['kex']}\n";
echo "Server identified using an {$methods['hostkey']} with ";
echo "fingerprint: " . ssh2_fingerprint($connection) . "\n";

echo "Client to Server packets will use methods:\n";
echo "\tCrypt: {$methods['client_to_server']['crypt']}\n";
echo "\tComp: {$methods['client_to_server']['comp']}\n";
echo "\tMAC: {$methods['client_to_server']['mac']}\n";

echo "Server to Client packets will use methods:\n";
echo "\tCrypt: {$methods['server_to_client']['crypt']}\n";
echo "\tComp: {$methods['server_to_client']['comp']}\n";
echo "\tMAC: {$methods['server_to_client']['mac']}\n";

?>

参见

  • ssh2_connect

ssh2_publickey_add

Add an authorized publickey

说明

bool <span class="methodname">ssh2_publickey_add ( <span class="methodparam">resource $pkey , string $algoname , <span class="type">string $blob [, <span class="methodparam">bool $overwrite<span class="initializer"> = false [, <span class="methodparam">array $attributes ]] )

Note: <span class="simpara">公钥子系统用于管理服务器到被认证的客户端的公钥。要用公钥认证方法来认证远程系统,应使用 ssh2_auth_pubkey_file 函数。

参数

pkey
Publickey Subsystem resource created by <span class="function">ssh2_publickey_init.

algoname
Publickey algorithm (e.g.): ssh-dss, ssh-rsa

blob
Publickey blob as raw binary data

overwrite
If the specified key already exists, should it be overwritten?

attributes
Associative array of attributes to assign to this public key. Refer to ietf-secsh-publickey-subsystem for a list of supported attributes. To mark an attribute as mandatory, precede its name with an asterisk. If the server is unable to support an attribute marked mandatory, it will abort the add process.

返回值

成功时返回 true, 或者在失败时返回 false

范例

示例 #1 Adding a publickey with <span class="function">ssh2_publickey_add

<?php
$ssh2 = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($ssh2, 'jdoe', 'password');
$pkey = ssh2_publickey_init($ssh2);

$keyblob = base64_decode('
AAAAB3NzaC1yc2EAAAABIwAAAIEA5HVt6VqSGd5PTrLRdjNONxXH1tVFGn0
Bd26BF0aCP9qyJRlvdJ3j4WBeX4ZmrveGrjMgkseSYc4xZ26sDHwfL351xj
zaLpipu\BGRrw17mWVBhuCExo476ri5tQFzbTc54VEHYckxQ16CjSTibI5X
69GmnYC9PNqEYq/1TP+HF10=');

ssh2_publickey_add($pkey, 'ssh-rsa', $keyblob, false, array('comment'=>"John's Key"));
?>

参见

  • ssh2_publickey_init
  • ssh2_publickey_remove
  • ssh2_publickey_list

ssh2_publickey_init

Initialize Publickey subsystem

说明

resource<span class="type">false <span class="methodname">ssh2_publickey_init ( <span class="methodparam">resource $session )

Request the Publickey subsystem from an already connected SSH2 server.

The publickey subsystem allows an already connected and authenticated client to manage the list of authorized public keys stored on the target server in an implementation agnostic manner. If the remote server does not support the publickey subsystem, the <span class="function">ssh2_publickey_init function will return false.

参数

session

返回值

Returns an SSH2 Publickey Subsystem resource for use with all other ssh2_publickey_*() methods 或者在失败时返回 false.

注释

Note: <span class="simpara">公钥子系统用于管理服务器到被认证的客户端的公钥。要用公钥认证方法来认证远程系统,应使用 ssh2_auth_pubkey_file 函数。

参见

  • ssh2_publickey_add
  • ssh2_publickey_remove
  • ssh2_publickey_list

ssh2_publickey_list

List currently authorized publickeys

说明

array <span class="methodname">ssh2_publickey_list ( <span class="methodparam">resource $pkey )

List currently authorized publickeys.

参数

pkey
Publickey Subsystem resource

返回值

Returns a numerically indexed array of keys, each of which is an associative array containing: name, blob, and attrs elements.

Array Key Meaning
name Name of algorithm used by this publickey, for example: ssh-dss or ssh-rsa.
blob Publickey blob as raw binary data.
attrs Attributes assigned to this publickey. The most common attribute, and the only one supported by publickey version 1 servers, is comment, which may be any freeform string.

范例

示例 #1 Listing authorized keys with <span class="function">ssh2_publickey_list

<?php
$ssh2 = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($ssh2, 'jdoe', 'secret');
$pkey = ssh2_publickey_init($ssh2);

$list = ssh2_publickey_list($pkey);

foreach($list as $key) {
  echo "Key: {$key['name']}\n";
  echo "Blob: " . chunk_split(base64_encode($key['blob']), 40, "\n") . "\n";
  echo "Comment: {$key['attrs']['comment']}\n\n";
}
?>

以上例程会输出:

Key: ssh-rsa
Blob: AAAAB3NzaC1yc2EAAAABIwAAAIEA5HVt6VqSGd5P
TrLRdjNONxXH1tVFGn0Bd26BF0aCP9qyJRlvdJ3j
4WBeX4ZmrveGrjMgkseSYc4xZ26sDHwfL351xjza
Lpipu\BGRrw17mWVBhuCExo476ri5tQFzbTc54VE
HYckxQ16CjSTibI5X69GmnYC9PNqEYq/1TP+HF10
Comment: John's Key

Key: ssh-rsa
Blob: AAAAB3NzaHVt6VqSGd5C1yc2EAAAABIwA232dnJA
AIEA5HVt6VqSGd5PTrLRdjNONxX/1TP+HF1HVt6V
qSGd50H1tVFGn0BB3NzaC1yc2EAd26BF0aCP9qyJ
RlvdJ3j4WBeX4ZmrveGrjMgkseSYc4xZ26HVt6Vq
SGd5sDHwfL351xjzaLpipu\BGB3NzaC1yc2EA/1T
Comment: Alice's Key

注释

Note: <span class="simpara">公钥子系统用于管理服务器到被认证的客户端的公钥。要用公钥认证方法来认证远程系统,应使用 ssh2_auth_pubkey_file 函数。

参见

  • ssh2_publickey_init
  • ssh2_publickey_add
  • ssh2_publickey_remove

ssh2_publickey_remove

Remove an authorized publickey

说明

bool <span class="methodname">ssh2_publickey_remove ( <span class="methodparam">resource $pkey , string $algoname , <span class="type">string $blob )

Removes an authorized publickey.

参数

pkey
Publickey Subsystem Resource

algoname
Publickey algorithm (e.g.): ssh-dss, ssh-rsa

blob
Publickey blob as raw binary data

返回值

成功时返回 true, 或者在失败时返回 false

注释

Note: <span class="simpara">公钥子系统用于管理服务器到被认证的客户端的公钥。要用公钥认证方法来认证远程系统,应使用 ssh2_auth_pubkey_file 函数。

参见

  • ssh2_publickey_init
  • ssh2_publickey_add
  • ssh2_publickey_list

ssh2_scp_recv

Request a file via SCP

说明

bool <span class="methodname">ssh2_scp_recv ( <span class="methodparam">resource $session , string $remote_file , <span class="type">string $local_file )

Copy a file from the remote server to the local filesystem using the SCP protocol.

参数

session
An SSH connection link identifier, obtained from a call to <span class="function">ssh2_connect.

remote_file
Path to the remote file.

local_file
Path to the local file.

返回值

成功时返回 true, 或者在失败时返回 false

范例

示例 #1 Downloading a file via SCP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_recv($connection, '/remote/filename', '/local/filename');
?>

参见

  • ssh2_scp_send
  • copy

ssh2_scp_send

Send a file via SCP

说明

bool <span class="methodname">ssh2_scp_send ( <span class="methodparam">resource $session , string $local_file , <span class="type">string $remote_file [, <span class="methodparam">int $create_mode<span class="initializer"> = 0644 ] )

Copy a file from the local filesystem to the remote server using the SCP protocol.

参数

session
An SSH connection link identifier, obtained from a call to <span class="function">ssh2_connect.

local_file
Path to the local file.

remote_file
Path to the remote file.

create_mode
The file will be created with the mode specified by create_mode.

返回值

成功时返回 true, 或者在失败时返回 false

范例

示例 #1 Uploading a file via SCP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>

参见

  • ssh2_scp_recv
  • copy

ssh2_sftp_chmod

Changes file mode

说明

bool <span class="methodname">ssh2_sftp_chmod ( <span class="methodparam">resource $sftp , string $filename , <span class="type">int $mode )

Attempts to change the mode of the specified file to that given in mode.

参数

sftp
An SSH2 SFTP resource opened by <span class="function">ssh2_sftp.

filename
Path to the file.

mode
Permissions on the file. See the chmod for more details on this parameter.

返回值

成功时返回 true, 或者在失败时返回 false

范例

示例 #1 Changing the mode of a file on a remote server

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_chmod($sftp, '/somedir/somefile', 0755);
?>

参见

  • chmod
  • ssh2_sftp
  • ssh2_connect

ssh2_sftp_lstat

Stat a symbolic link

说明

array <span class="methodname">ssh2_sftp_lstat ( <span class="methodparam">resource $sftp , string $path )

Stats a symbolic link on the remote filesystem without following the link.

This function is similar to using the <span class="function">lstat function with the ssh2.sftp:// wrapper in PHP 5 and returns the same values.

参数

sftp
An SSH2 SFTP resource opened by <span class="function">ssh2_sftp.

path
Path to the remote symbolic link.

返回值

See the documentation for stat for details on the values which may be returned.

范例

示例 #1 Stating a symbolic link via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_lstat($sftp, '/path/to/symlink');

$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>

参见

  • ssh2_sftp_stat
  • lstat
  • stat

ssh2_sftp_mkdir

Create a directory

说明

bool <span class="methodname">ssh2_sftp_mkdir ( <span class="methodparam">resource $sftp , string $dirname [, <span class="type">int $mode = 0777 [, <span class="type">bool $recursive = false ]] )

Creates a directory on the remote file server with permissions set to mode.

This function is similar to using mkdir with the ssh2.sftp:// wrapper.

参数

sftp
An SSH2 SFTP resource opened by <span class="function">ssh2_sftp.

dirname
Path of the new directory.

mode
Permissions on the new directory.

recursive
If recursive is true any parent directories required for dirname will be automatically created as well.

返回值

成功时返回 true, 或者在失败时返回 false

范例

示例 #1 Creating a directory on a remote server

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_mkdir($sftp, '/home/username/newdir');
/* Or:  mkdir("ssh2.sftp://$sftp/home/username/newdir"); */
?>

参见

  • mkdir
  • ssh2_sftp_rmdir

ssh2_sftp_readlink

Return the target of a symbolic link

说明

string <span class="methodname">ssh2_sftp_readlink ( <span class="methodparam">resource $sftp , string $link )

Returns the target of a symbolic link.

参数

sftp
An SSH2 SFTP resource opened by <span class="function">ssh2_sftp.

link
Path of the symbolic link.

返回值

Returns the target of the symbolic link.

范例

示例 #1 Reading a symbolic link

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

$target = ssh2_sftp_readlink($sftp, '/tmp/mysql.sock');
/* $target is now (e.g.): '/var/run/mysql.sock' */
?>

参见

  • readlink
  • ssh2_sftp_symlink

ssh2_sftp_realpath

Resolve the realpath of a provided path string

说明

string <span class="methodname">ssh2_sftp_realpath ( <span class="methodparam">resource $sftp , string $filename )

Translates filename into the effective real path on the remote filesystem.

参数

sftp
An SSH2 SFTP resource opened by <span class="function">ssh2_sftp.

filename

返回值

Returns the real path as a string.

范例

示例 #1 Resolving a pathname

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

$realpath = ssh2_sftp_realpath($sftp, '/home/username/../../../..//./usr/../etc/passwd');
/* $realpath is now: '/etc/passwd' */
?>

参见

  • realpath
  • ssh2_sftp_symlink
  • ssh2_sftp_readlink

ssh2_sftp_rename

Rename a remote file

说明

bool <span class="methodname">ssh2_sftp_rename ( <span class="methodparam">resource $sftp , string $from , <span class="type">string $to )

Renames a file on the remote filesystem.

参数

sftp
An SSH2 SFTP resource opened by <span class="function">ssh2_sftp.

from
The current file that is being renamed.

to
The new file name that replaces from.

返回值

成功时返回 true, 或者在失败时返回 false

范例

示例 #1 Renaming a file via sftp

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_rename($sftp, '/home/username/oldname', '/home/username/newname');
?>

参见

  • rename

ssh2_sftp_rmdir

Remove a directory

说明

bool <span class="methodname">ssh2_sftp_rmdir ( <span class="methodparam">resource $sftp , string $dirname )

Removes a directory from the remote file server.

This function is similar to using rmdir with the ssh2.sftp:// wrapper.

参数

sftp
An SSH2 SFTP resource opened by <span class="function">ssh2_sftp.

dirname

返回值

成功时返回 true, 或者在失败时返回 false

范例

示例 #1 Removing a directory on a remote server

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_rmdir($sftp, '/home/username/deltodel');
/* Or:  rmdir("ssh2.sftp://$sftp/home/username/dirtodel"); */
?>

参见

  • rmdir
  • ssh2_sftp_mkdir

ssh2_sftp_stat

Stat a file on a remote filesystem

说明

array <span class="methodname">ssh2_sftp_stat ( <span class="methodparam">resource $sftp , string $path )

Stats a file on the remote filesystem following any symbolic links.

This function is similar to using the stat function with the ssh2.sftp:// wrapper in PHP 5 and returns the same values.

参数

sftp
An SSH2 SFTP resource opened by <span class="function">ssh2_sftp.

path

返回值

See the documentation for stat for details on the values which may be returned.

范例

示例 #1 Stating a file via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_stat($sftp, '/path/to/file');

$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>

参见

  • ssh2_sftp_lstat
  • lstat
  • stat

ssh2_sftp_symlink

Create a symlink

说明

bool <span class="methodname">ssh2_sftp_symlink ( <span class="methodparam">resource $sftp , string $target , <span class="type">string $link )

Creates a symbolic link named link on the remote filesystem pointing to target.

参数

sftp
An SSH2 SFTP resource opened by <span class="function">ssh2_sftp.

target
Target of the symbolic link.

link

返回值

成功时返回 true, 或者在失败时返回 false

范例

示例 #1 Creating a symbolic link

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_symlink($sftp, '/var/run/mysql.sock', '/tmp/mysql.sock');
?>

参见

  • ssh2_sftp_readlink
  • symlink

ssh2_sftp_unlink

Delete a file

说明

bool <span class="methodname">ssh2_sftp_unlink ( <span class="methodparam">resource $sftp , string $filename )

Deletes a file on the remote filesystem.

参数

sftp
An SSH2 SFTP resource opened by <span class="function">ssh2_sftp.

filename

返回值

成功时返回 true, 或者在失败时返回 false

范例

示例 #1 Deleting a file

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_unlink($sftp, '/home/username/stale_file');
?>

参见

  • unlink

ssh2_sftp

Initialize SFTP subsystem

说明

resource<span class="type">false <span class="methodname">ssh2_sftp ( <span class="type">resource $session )

Request the SFTP subsystem from an already connected SSH2 server.

参数

session
An SSH connection link identifier, obtained from a call to <span class="function">ssh2_connect.

返回值

This method returns an SSH2 SFTP resource for use with all other ssh2_sftp_*() methods and the ssh2.sftp:// fopen wrapper, 或者在失败时返回 false.

范例

示例 #1 Opening a file via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);

$stream = fopen('ssh2.sftp://' . intval($sftp) . '/path/to/file', 'r');
?>

参见

  • ssh2_scp_recv
  • ssh2_scp_send

ssh2_shell

Request an interactive shell

说明

resource <span class="methodname">ssh2_shell ( <span class="type">resource $session [, <span class="methodparam">string $term_type<span class="initializer"> = "vanilla" [, <span class="methodparam">array $env [, int $width<span class="initializer"> = 80 [, <span class="methodparam">int $height<span class="initializer"> = 25 [, <span class="methodparam">int $width_height_type = SSH2_TERM_UNIT_CHARS ]]]]] )

Open a shell at the remote end and allocate a stream for it.

参数

session
An SSH connection link identifier, obtained from a call to <span class="function">ssh2_connect.

term_type
term_type should correspond to one of the entries in the target system's /etc/termcap file.

env
env may be passed as an associative array of name/value pairs to set in the target environment.

width
Width of the virtual terminal.

height
Height of the virtual terminal.

width_height_type
width_height_type should be one of SSH2_TERM_UNIT_CHARS or SSH2_TERM_UNIT_PIXELS.

返回值

范例

示例 #1 Requesting an interactive shell

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream = ssh2_shell($connection, 'vt102', null, 80, 24, SSH2_TERM_UNIT_CHARS);
?>

参见

  • ssh2_exec
  • ssh2_tunnel
  • ssh2_fetch_stream

ssh2_tunnel

Open a tunnel through a remote server

说明

resource <span class="methodname">ssh2_tunnel ( <span class="type">resource $session , <span class="methodparam">string $host , int $port )

Open a socket stream to an arbitrary host/port by way of the currently connected SSH server.

参数

session
An SSH connection link identifier, obtained from a call to <span class="function">ssh2_connect.

host

port

返回值

范例

示例 #1 Opening a tunnel to an arbitrary host

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_pubkey_file($connection, 'username', 'id_dsa.pub', 'id_dsa');

$tunnel = ssh2_tunnel($connection, '10.0.0.101', 12345);
?>

参见

  • ssh2_connect
  • fsockopen

目录


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除