Adduser ftp ssh2与phpseclib

时间:2013-07-12 18:35:50

标签: php class phpseclib

我无法在用户创建的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");

抱歉我的英文错误

1 个答案:

答案 0 :(得分: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验证帐户是否已创建。