ssh2://
ssh2:// — Shell Seguro 2
Descrição
ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// (PECL)
Note: Este empacotador não é habilitado por padrão.
Para utilizar os empacotadores ssh2.*://, a extensão » SSH2 disponível em » PECL deve estar instalada.
Além de aceitar detalhes de login URI tradicionais, os empacotadores ssh2 também farão reúso de conexões abertas através da passagem do recurso da conexão na parte do host da URL.
Uso
- ssh2.shell://usuario:[email protected]:22/xterm
- ssh2.exec://usuario:[email protected]:22/usr/local/bin/algumcomando
- ssh2.tunnel://usuario:[email protected]:22/192.168.0.1:14
- ssh2.sftp://usuario:[email protected]:22/caminho/para/arquivo
Exemplos
Example #1 Abrindo um fluxo para conexão ativa
<?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 Esta variável $session deve ser mantida disponível!
Para usar os empacotadores ssh2.*://$session, a variável de recurso $session deve ser mantida. O código abaixo não terá o efeito desejado:
<?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() fecha a sessão, porque $connection_string não contém uma referência à variável $session, somente uma string convertida derivada dela. Isto também acontece quando a função unset() está implícita devido a uma saída de escopo (como em uma função).