downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Our source is open

The syntax highlighted source is automatically generated by PHP from the plaintext script. If you're interested in what's behind the several functions we used, you can always take a look at the source of the following files:

Of course, if you want to see the source of this page, we have it available. You can also browse the SVN repository for this website on svn.php.net.

Source of: /manual/en/wrappers.ssh2.php

<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$PARENTS = array();
include_once
dirname(__FILE__) ."/toc/wrappers.inc";
$setup = array (
 
'home' =>
  array (
   
0 => 'index.php',
   
1 => 'PHP Manual',
  ),
 
'head' =>
  array (
   
0 => 'UTF-8',
   
1 => 'en',
  ),
 
'this' =>
  array (
   
0 => 'wrappers.ssh2.php',
   
1 => 'Secure Shell 2',
  ),
 
'up' =>
  array (
   
0 => 'wrappers.php',
   
1 => 'List of Supported Protocols/Wrappers',
  ),
 
'prev' =>
  array (
   
0 => 'wrappers.phar.php',
   
1 => 'Phar',
  ),
 
'next' =>
  array (
   
0 => 'wrappers.audio.php',
   
1 => 'Audio Streams',
  ),
);
$setup["toc"] = $TOC;
$setup["parents"] = $PARENTS;
manual_setup($setup);

manual_header();
?>
<div id="wrappers.ssh2" class="section">
  <h2 class="title">Secure Shell 2</h2>
  <p class="simpara">
   <var class="filename">ssh2.shell://</var>
   <var class="filename">ssh2.exec://</var>
   <var class="filename">ssh2.tunnel://</var>
   <var class="filename">ssh2.sftp://</var>
   <var class="filename">ssh2.scp://</var>
   PHP 4.3.0 and up (PECL)
  </p>

  <ul class="itemizedlist">
   <li class="listitem"><span class="simpara"><var class="filename">ssh2.shell://user:pass@example.com:22/xterm</var></span></li>
   <li class="listitem"><span class="simpara"><var class="filename">ssh2.exec://user:pass@example.com:22/usr/local/bin/somecmd</var></span></li>
   <li class="listitem"><span class="simpara"><var class="filename">ssh2.tunnel://user:pass@example.com:22/192.168.0.1:14</var></span></li>
   <li class="listitem"><span class="simpara"><var class="filename">ssh2.sftp://user:pass@example.com:22/path/to/filename</var></span></li>
  </ul>

  <blockquote><p><b class="note">Note</b>:
   <b>This wrapper is not enabled by default</b><br />
   <span class="simpara">
    In order to use the <var class="filename">ssh2.*://</var> wrappers you must install
    the <a href="http://pecl.php.net/package/ssh2" class="link external">&raquo; SSH2</a> extension
    available from <a href="http://pecl.php.net/" class="link external">&raquo; PECL</a>.
   </span>
  </p></blockquote>

  <p class="simpara">
   In addition to accepting traditional URI login details, the ssh2 wrappers
   will also reuse open connections by passing the connection resource in the
   host portion of the URL.
  </p>

  <div class="example">
   <p><b>Example #1 Opening a stream from an active connection</b></p>
   <div class="example-contents programlisting">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br />$session&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">ssh2_connect</span><span style="color: #007700">(</span><span style="color: #DD0000">'example.com'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">22</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">ssh2_auth_pubkey_file</span><span style="color: #007700">(</span><span style="color: #0000BB">$session</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'username'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'/home/username/.ssh/id_rsa.pub'</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'/home/username/.ssh/id_rsa'</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'secret'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$stream&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #DD0000">"ssh2.tunnel://</span><span style="color: #0000BB">$session</span><span style="color: #DD0000">/remote.example.com:1234"</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'r'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
   </div>

  </div>
  <p class="para">
   </p><table class="doctable table">
    <caption><b>Wrapper Summary</b></caption>
   
     <thead valign="middle">
      <tr valign="middle">
       <th>Attribute</th>
       <th>ssh2.shell</th>
       <th>ssh2.exec</th>
       <th>ssh2.tunnel</th>
       <th>ssh2.sftp</th>
       <th>ssh2.scp</th>
      </tr>

     </thead>

     <tbody valign="middle" class="tbody">
      <tr valign="middle">
       <td align="left">Restricted by <a href="filesystem.configuration.php#ini.allow-url-fopen" class="link">allow_url_fopen</a></td>
       <td align="left">Yes</td>
       <td align="left">Yes</td>
       <td align="left">Yes</td>
       <td align="left">Yes</td>
       <td align="left">Yes</td>
      </tr>

      <tr valign="middle">
       <td align="left">Allows Reading</td>
       <td align="left">Yes</td>
       <td align="left">Yes</td>
       <td align="left">Yes</td>
       <td align="left">Yes</td>
       <td align="left">Yes</td>
      </tr>

      <tr valign="middle">
       <td align="left">Allows Writing</td>
       <td align="left">Yes</td>
       <td align="left">Yes</td>
       <td align="left">Yes</td>
       <td align="left">Yes</td>
       <td align="left">No</td>
      </tr>

      <tr valign="middle">
       <td align="left">Allows Appending</td>
       <td align="left">No</td>
       <td align="left">No</td>
       <td align="left">No</td>
       <td align="left">Yes (When supported by server)</td>
       <td align="left">No</td>
      </tr>

      <tr valign="middle">
       <td align="left">Allows Simultaneous Reading and Writing</td>
       <td align="left">Yes</td>
       <td align="left">Yes</td>
       <td align="left">Yes</td>
       <td align="left">Yes</td>
       <td align="left">No</td>
      </tr>

      <tr valign="middle">
       <td align="left">Supports <a href="function.stat.php" class="function">stat()</a></td>
       <td align="left">No</td>
       <td align="left">No</td>
       <td align="left">No</td>
       <td align="left">Yes</td>
       <td align="left">No</td>
      </tr>

      <tr valign="middle">
       <td align="left">Supports <a href="function.unlink.php" class="function">unlink()</a></td>
       <td align="left">No</td>
       <td align="left">No</td>
       <td align="left">No</td>
       <td align="left">Yes</td>
       <td align="left">No</td>
      </tr>

      <tr valign="middle">
       <td align="left">Supports <a href="function.rename.php" class="function">rename()</a></td>
       <td align="left">No</td>
       <td align="left">No</td>
       <td align="left">No</td>
       <td align="left">Yes</td>
       <td align="left">No</td>
      </tr>

      <tr valign="middle">
       <td align="left">Supports <a href="function.mkdir.php" class="function">mkdir()</a></td>
       <td align="left">No</td>
       <td align="left">No</td>
       <td align="left">No</td>
       <td align="left">Yes</td>
       <td align="left">No</td>
      </tr>

      <tr valign="middle">
       <td align="left">Supports <a href="function.rmdir.php" class="function">rmdir()</a></td>
       <td align="left">No</td>
       <td align="left">No</td>
       <td align="left">No</td>
       <td align="left">Yes</td>
       <td align="left">No</td>
      </tr>

     </tbody>
   
   </table>
<p>
  </p>

  <p class="para">
   </p><table class="doctable table">
    <caption><b>Context options</b></caption>
   
     <thead valign="middle">
      <tr valign="middle">
       <th>Name</th>
       <th>Usage</th>
       <th>Default</th>
      </tr>

     </thead>

     <tbody valign="middle" class="tbody">
      <tr valign="middle">
       <td align="left"><i>session</i></td>
       <td align="left">Preconnected ssh2 resource to be reused</td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr valign="middle">
       <td align="left"><i>sftp</i></td>
       <td align="left">Preallocated sftp resource to be reused</td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr valign="middle">
       <td align="left"><i>methods</i></td>
       <td align="left">Key exchange, hostkey, cipher, compression, and MAC methods to use</td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr valign="middle">
       <td align="left"><i>callbacks</i></td>
       <td class="empty">&nbsp;</td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr valign="middle">
       <td align="left"><i>username</i></td>
       <td align="left">Username to connect as</td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr valign="middle">
       <td align="left"><i>password</i></td>
       <td align="left">Password to use with password authentication</td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr valign="middle">
       <td align="left"><i>pubkey_file</i></td>
       <td align="left">Name of public key file to use for authentication</td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr valign="middle">
       <td align="left"><i>privkey_file</i></td>
       <td align="left">Name of private key file to use for authentication</td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr valign="middle">
       <td align="left"><i>env</i></td>
       <td align="left">Associate array of environment variables to set</td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr valign="middle">
       <td align="left"><i>term</i></td>
       <td align="left">Terminal emulation type to request when allocating a pty</td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr valign="middle">
       <td align="left"><i>term_width</i></td>
       <td align="left">Width of terminal requested when allocating a pty</td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr valign="middle">
       <td align="left"><i>term_height</i></td>
       <td align="left">Height of terminal requested when allocating a pty</td>
       <td class="empty">&nbsp;</td>
      </tr>

      <tr valign="middle">
       <td align="left"><i>term_units</i></td>
       <td align="left">Units to use with term_width and term_height</td>
       <td align="left"><b><tt class="constant">SSH2_TERM_UNIT_CHARS</tt></b></td>
      </tr>

     </tbody>
   
   </table>
<p>
  </p>


 </div><?php manual_footer(); ?>
 
show source | credits | sitemap | contact | advertising | mirror sites