我有一段代码向用户询问命令,然后与服务器建立 ssh 连接并输出结果。问题是如果用户输入命令 cd /etc 他导航到那个目录但是如果他然后输入命令 pwd 输出是 /root 这意味着它关闭了第一个连接并开始了一个新连接。
<?php
$ip= $_SESSION['ip'];
$user=$_SESSION['user'];
$pass=$_SESSION['pass'];
$connection = ssh2_connect($ip);
ssh2_auth_password($connection,$user,$pass);
if(isset($_POST['but_submit'])){
$input=$_POST['input'];
$stream = ssh2_exec($connection,$input);
$err_stream = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);
stream_set_blocking($stream,true);
stream_set_blocking($err_stream, true);
$output= stream_get_contents($stream);
$result_err = stream_get_contents($err_stream);
echo "<fieldset><pre>$output$result_err</pre></fieldset>";
}else{echo 'Vendos nje komande';}
?>