安装依赖

  1. sudo yum install libssh2 libssh2-devel -y

安装ssh2

  1. sudo pecl install ssh2

直接pecl安装会报错
image.png
源码安装

  1. git clone https://git.php.net/repository/pecl/networking/ssh2.git
  2. cd ssh2
  3. phpize
  4. ./configure
  5. make
  6. sudo make install
  7. # ls /usr/lib64/php/modules/ssh2.so
  8. # sudo vi /etc/php.ini
  9. # 添加
  10. [ssh2]
  11. extension=ssh2.so
  12. # 查看时候成功
  13. php -m | grep ssh2

使用示例

  1. <?php
  2. // 密码认证
  3. $conn = ssh2_connect('remote-host', 22);
  4. ssh2_auth_password($conn, 'username', 'password');
  5. // 公钥认证
  6. $conn = ssh2_connect('remote-host', 22, ['hostkey'=>'ssh-rsa']);
  7. ssh2_auth_pubkey_file($conn, 'username',
  8. '~/.ssh/id_rsa.pub',
  9. '~/.ssh/id_rsa',
  10. 'secret');
  11. $cmd = 'hostname;whoami';
  12. $ret = ssh2_exec($conn, $cmd);
  13. stream_set_blocking($ret, true);
  14. echo stream_get_contents($ret);