首先本地要安装php,可以使用编译安装,也可以使用命令行直接安装,这里就直接介绍使用命令行安装(sudo apt install php-7.2)有一点需要注意的是php的版本需要时7.0以上安装php之后需要安装一下ssh2拓展(sudo apt-get install libssh2-1-dev libssh2-php)安装之后就可以了,进入到php的~目录下,运行ssh-keygen生成秘钥和公钥,生成的秘钥和公钥会自动生在.ssh文件夹下边,然后设置一下权限,网上很多说.ssh文件夹权限设置为700,但是在实际操作中会发现700并不够,所以我给的权限是755,然后是生成的公钥权限给的是644,私钥给的是600,设置完成之后便可以使用php代码链接测试
$connection = ssh2_connect("192.168.1.1",22);
if(ssh2_auth_password($connection,"aaa","pass"))
{
echo "Authentication Successful! ";
}else{
die("Authentication Failed...");
}
这种方式是使用账号密码链接,还有另外一种方法是使用秘钥和公钥链接,当使用公钥和密钥链接的时候需要到~目录下执行指令ssh-keygen生成密钥和公钥,生成的密钥就在.ssh文件夹下边可以去看下,然后使用命令将公钥传至远程服务器,scp id_rsa username@hosts:/目录 然后直接就可以做链接测试
$connection = ssh2_connect($host, $port, array('hostkey'=>'ssh-rsa'));
if (ssh2_auth_pubkey_file($connection, $username,
'公钥文件路径',
'私钥文件路径')) {
echo "Public Key Authentication Successful";
} else {
die('Public Key Authentication Failed');
}
服务器返回Public Key Authentication Successful 就链接成功了