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).