安装依赖
sudo yum install libssh2 libssh2-devel -y
安装ssh2
sudo pecl install ssh2
直接pecl安装会报错
源码安装
git clone https://git.php.net/repository/pecl/networking/ssh2.git
cd ssh2
phpize
./configure
make
sudo make install
# ls /usr/lib64/php/modules/ssh2.so
# sudo vi /etc/php.ini
# 添加
[ssh2]
extension=ssh2.so
# 查看时候成功
php -m | grep ssh2
使用示例
<?php
// 密码认证
$conn = ssh2_connect('remote-host', 22);
ssh2_auth_password($conn, 'username', 'password');
// 公钥认证
$conn = ssh2_connect('remote-host', 22, ['hostkey'=>'ssh-rsa']);
ssh2_auth_pubkey_file($conn, 'username',
'~/.ssh/id_rsa.pub',
'~/.ssh/id_rsa',
'secret');
$cmd = 'hostname;whoami';
$ret = ssh2_exec($conn, $cmd);
stream_set_blocking($ret, true);
echo stream_get_contents($ret);