ubuntu

Ubuntu PHP如何使用SSH

小樊
37
2025-05-20 00:01:17
栏目: 编程语言

在Ubuntu上使用PHP进行SSH连接,您可以使用phpseclib库

  1. 首先,确保您已经安装了Composer。如果没有,请访问https://getcomposer.org/download/ 并按照说明进行安装。

  2. 使用以下命令安装phpseclib库:

composer require phpseclib/phpseclib
  1. 创建一个名为ssh.php的新文件,并在其中输入以下代码:
<?php
require_once 'vendor/autoload.php';

use phpseclib3\Net\SSH2;

$ssh = new SSH2('your_remote_host');
if (!$ssh->login('your_username', 'your_password')) {
    exit('Login Failed');
}

echo "Connected successfully\n";

// 执行远程命令
stdout($ssh->exec('ls'));
stdout($ssh->exec('pwd'));

// 上传文件
$sftp = $ssh->sftp();
$sftp->put('remote_file_path', 'local_file_path');

// 下载文件
$sftp->get('remote_file_path', 'local_file_path');

// 关闭SFTP连接
$sftp->close();

// 关闭SSH连接
$ssh->disconnect();

function stdout($data)
{
    echo chunk_split(base64_encode($data));
}
?>
  1. 替换your_remote_hostyour_usernameyour_passwordremote_file_pathlocal_file_path为您的实际值。

  2. 在终端中运行以下命令以执行脚本:

php ssh.php

这将连接到远程服务器,执行一些命令(例如列出目录内容并显示当前工作目录),上传和下载文件,然后断开连接。

注意:出于安全原因,建议使用SSH密钥而不是密码进行身份验证。要使用密钥,请将$ssh->login('your_username', 'your_password')替换为:

$key = file_get_contents('path/to/your/private_key');
if (!$ssh->login('your_username', null, $key)) {
    exit('Login Failed');
}

并将path/to/your/private_key替换为您的私钥文件路径。

0
看了该问题的人还看了