-1

我无法在创建用户的 php 页面中使用 ftp ssh2 创建用户,但我无法使用 filezilla 登录

$command = 'useradd '.$serveruser.' -p '.$serverpass.' -d '.$dir.'';
$ssh2->exec($command);
$ssh2->exec("passwd $serveruser");
$ssh2->read('Enter new UNIX password:');
$ssh2->write("$serverpass\n");
$ssh2->read('Retype new UNIX password:');
$ssh2->write("$serverpass\n");

对不起我的英语错了

4

1 回答 1

0

这可以通过两种不同的方式来完成。例如。在 PTY 模式下使用 exec():

$ssh->exec('sudo useradd newuser');

$ssh->enablePTY();
$ssh->exec('sudo passwd newuser');
$ssh->read('Enter new UNIX password:');
$ssh->write("newpass\n");
$ssh->read('Retype new UNIX password:');
$ssh->write("newpass\n");

直接使用 write():

$ssh->exec('sudo useradd newuser');

$ssh->write("sudo passwd newuser\n");
$ssh->read('Enter new UNIX password:');
$ssh->write("newpass\n");
$ssh->read('Retype new UNIX password:');
$ssh->write("newpass\n");

当我这样做时,我可以使用新帐户通过 SSH 登录。例如。

include('Net/SSH2.php');

$ssh = new Net_SSH2('127.0.0.1', 4022);
echo $ssh->login('newuser', 'newpass') ? 'good login' : 'bad login';

要确保密码确实已成功更改,请在上次发送密码后执行此操作:

$ssh->setTimeout(0.5);
echo $ssh->read();

您还可以通过执行来验证帐户是否已创建cat /etc/passwd

于 2013-07-12T22:40:01.257 回答