手机版

PHP支持的协议和封装协议:ssh2://

2019-09-07 阅读 :

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

服务器教程 服务器知识 服务器技术 服务器之家 vps教程 vps是什么
本文标题:PHP支持的协议和封装协议:ssh2:// - 服务器教程_服务器技术_服务器知识_vps教程
本文地址:https://www.helloaliyun.com/tutorial/358.html

相关文章

  • CentOS 7 常用命令(系统关机、重启以及登出)

    关机:(系统的关机、重启以及登出 ) # 关闭系统(1)[root@localhost ~]# shutdown -h now # 关闭系统(2)[root@localhost ~]# init 0 # 关闭系统(3)[root@localhost ~]# telinit 0 # 按预定时间关闭系统[root@localhost...

    2019-12-07 服务器教程
  • linux重启命令 reboot与shutdown -r now的区别与联系

    在linux命令中reboot是重新启动,shutdown -r now是立即停止然后重新启动,都说他们两个是一样的,其实是有一定的区别的。shutdown命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告...

    2019-12-07 服务器教程
  • CentOS 7 如何使用命令重启或关机

    安装GNOME的朋友们首先切换到字符界面。切换到字符界面的方法如下: 先登陆进入系统,进入图形化界面,然后按Ctrl+Alt+F6(笔记本的是Ctrl+Alt+shift+Fn),进入字符界面。关机命令:shutdown或poweroffshutdown:shutdown -h now...

    2019-12-07 服务器教程
  • CentOS 7 正确关机重启的命令方法

    linux主要用于服务器领域,而在服务器上执行一项服务是永无止境的,除非遇到特殊情况,否则不会关机。和Windows不同,在linux系统下,很多进程是在后台执行的。在屏幕背后,可能有很多人同时在工作。如果直接按下电源的按钮,其他...

    2019-12-07 服务器教程
  • CentOS下的yum upgrade和yum update区别,没事别乱用!

    说明:生产环境对软件版本和内核版本要求非常精确,别没事有事随便的进行yum update操作!!!!!!!!!yum update: 升级所有包同时也升级软件和系统内核yum upgrade:只升级所有包,不升级软件和系统内核...

    2019-12-07 服务器教程
你可能感兴趣
热门浏览