ConFoo: Call for paper is now Open

ssh2://

ssh2://Shell sécurisé 2

Description

ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// PHP 4.3.0 et suivants (PECL)

Note: Ce gestionnaire n'est pas activé par défaut
Pour utiliser les gestionnaires ssh2.*://, vous devez installer l'extension » SSH2 disponible via » PECL.

En plus d'accepter les identifications traditionnelles via l'URI, le gestionnaire ssh2 réutilisera les connexions ouvertes en passant la ressource de connexion dans la partie hôte de l'URL.

Utilisation

  • 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

Options

Résumé du gestionnaire
Attribut ssh2.shell ssh2.exec ssh2.tunnel ssh2.sftp ssh2.scp
Restreint par allow_url_fopen Oui Oui Oui Oui Oui
Autorise la lecture Oui Oui Oui Oui Oui
Autorise l'écriture Oui Oui Oui Oui Non
Autorise l'ajout Non Non Non Oui (lorsque supporté par le serveur) Non
Autorise la lecture et l'écriture simultanément Oui Oui Oui Oui Non
Support de la fonction stat() Non Non Non Oui Non
Support de la fonction unlink() Non Non Non Oui Non
Support de la fonction rename() Non Non Non Oui Non
Support de la fonction mkdir() Non Non Non Oui Non
Support de la fonction rmdir() Non Non Non Oui Non

Options de contexte
Nom Utilisation Défaut
session ressource ssh2 pré-connectée à réutiliser  
sftp ressource sftp pré-allouée à réutiliser  
methods méthodes d'échange de clés, hostkey, cipher, compression, et MAC, à utiliser  
callbacks    
username Nom de l'utilisateur pour la connexion  
password Mot de passe à utiliser lors d'une identification par mot de passe  
pubkey_file Nom du fichier contenant la clé publique à utiliser lors de l'identification  
privkey_file Nom du fichier contenant la clé privée à utiliser lors de l'identification  
env Tableau associatif de variables d'environnement à définir  
term Type d'émulation de terminal à demander lors de l'allocation d'un pty  
term_width Largeur du terminal à demander lors de l'allocation d'un pty  
term_height Hauteur du terminal à demander lors de l'allocation d'un pty  
term_units Unités à utiliser avec term_width et term_height SSH2_TERM_UNIT_CHARS

Exemples

Exemple #1 Ouverture d'un flux depuis une connexion active

<?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');
?>

Exemple #2 La variable $session doit rester disponible !

Afin d'utiliser le gestionnaire ssh2.*://$session, vous devez conserver la variable de ressource $session disponible. Le code ci-dessous n'aura pas l'effet escompté :

<?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');
?>

La fonction unset() clôt la session, car la variable $connection_string ne contient pas de référence à la variable $session, mais uniquement une chaîne dérivée. Ceci survient également lorsque la fonction unset() est implicite, lors d'une sortie du scope (comme dans une fonction).

add a note add a note

User Contributed Notes 2 notes

up
2
exptom
1 year ago
The "password" context option can also be used to provide the passphrase for the keyfile supplied by "privkey_file" and "pubkey_file".

Note this bug: https://bugs.php.net/bug.php?id=58573
Encrypted keys may not work unless you build libssh2 against openssl. (It only worked for me on Debian Wheezy once I recompiled the library).
up
1
bluej100 at gmail dot com
1 year ago
Be aware that opendir is currently broken on sftp root directories, but you can work around it by appending a dot. See https://bugs.php.net/bug.php?id=64169 and http://stackoverflow.com/a/16238476/69173.
To Top