ssh2://

ssh2://Secure Shell 2

˵��

ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// PHP 4.3.0 and up (PECL)

Note: �÷�װ��Ĭ��û�м���
Ϊ��ʹ�� ssh2.*:// ��װЭ�飬 ����밲װ���� » PECL �� » SSH2 ��չ��

����֧�ִ�ͳ�� URI ��¼��Ϣ��ssh2 ��װЭ��Ҳ֧��ͨ�� URL ��������host�����������ô����ӡ�

�÷�

  • ssh2.shell://user:pass@example.com:22/xterm
  • ssh2.exec://user:pass@example.com:22/usr/local/bin/somecmd
  • ssh2.tunnel://user:pass@example.com:22/192.168.0.1:14
  • ssh2.sftp://user:pass@example.com:22/path/to/filename

��ѡ��

��װЭ���Ҫ
���� ssh2.shell ssh2.exec ssh2.tunnel ssh2.sftp ssh2.scp
�� allow_url_fopen Ӱ�� Yes Yes Yes Yes Yes
�����ȡ Yes Yes Yes Yes Yes
����� Yes Yes Yes Yes No
����׷�� No No No Yes����������֧�ֵ�ʱ�� No
����ͬʱ����д Yes Yes Yes Yes No
֧�� stat() No No No Yes No
֧�� unlink() No No No Yes No
֧�� rename() No No No Yes No
֧�� mkdir() No No No Yes No
֧�� rmdir() No No No Yes No

������ѡ�Context��
���� �÷� Ĭ��
session �ظ�ʹ��Ԥ���ӵ� ssh2 ��Դ  
sftp �ظ�ʹ��Ԥ�ȷ���� sftp ��Դ  
methods ��Կ������key exchange����������Կ��hostkey����cipher��ѹ���� MAC ����  
callbacks    
username �Ը��û�������  
password ʹ�õ�����������������֤  
pubkey_file ������֤�Ĺ�Կ��public key���ļ�  
privkey_file ������֤��˽Կ��private key���ļ�  
env ��Ҫ���õĻ��������Ĺ�������  
term �ڷ���һ�� pty ʱ������ն�����  
term_width �ڷ���һ�� pty ʱ������ն˿��  
term_height �ڷ���һ�� pty ʱ������ն˿�ȸ߶�  
term_units term_width �� term_height �ĵ�λ SSH2_TERM_UNIT_CHARS

����

Example #1 ��һ��������д��ֽ���

<?php
$session 
ssh2_connect('example.com'22);
ssh2_auth_pubkey_file($session'username''/home/username/.ssh/id_rsa.pub',
                                            
'/home/username/.ssh/id_rsa''secret');
$stream fopen("ssh2.tunnel://$session/remote.example.com:1234"'r');
?>

Example #2 This $session variable must be kept available!

In order to use the ssh2.*://$session wrappers you must keep the $session resouce variable. The code below will not have the desired effect:

<?php
$session 
ssh2_connect('example.com'22);
ssh2_auth_pubkey_file($session'username''/home/username/.ssh/id_rsa.pub',
                                            
'/home/username/.ssh/id_rsa''secret');
$connection_string "ssh2.sftp://$session/";
unset(
$session);
$stream fopen($connection_string "path/to/file"'r');
?>

unset() closes the session, because $connection_string does not hold a reference to the $session variable, just a string cast derived from it. This also happens when the unset() is implicit because of leaving scope (like in a function).