在Ubuntu上使用PHP进行SSH连接,您可以使用phpseclib库
首先,确保您已经安装了Composer。如果没有,请访问https://getcomposer.org/download/ 并按照说明进行安装。
使用以下命令安装phpseclib库:
composer require phpseclib/phpseclib
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));
}
?>
替换your_remote_host
、your_username
、your_password
、remote_file_path
和local_file_path
为您的实际值。
在终端中运行以下命令以执行脚本:
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
替换为您的私钥文件路径。