PHP开放SSH会话
实际上,我正在创建一个脚本,用于创建集中式ssh主机。这意味着所有主机名和地址都存储在特定组的数据库中,这样团队中的每个人都可以拥有相同的、更新的机器。在我尝试shell_exec()…脚本提示密码之前,一切都很好,但在键入密码后,密码被卡住了 我不想通过ssh执行远程命令,只需为用户打开ssh会话。用户必须通过键入“php script.php”从Linux shell执行脚本 谢谢 下面是我的简单脚本:PHP开放SSH会话,php,ssh,Php,Ssh,实际上,我正在创建一个脚本,用于创建集中式ssh主机。这意味着所有主机名和地址都存储在特定组的数据库中,这样团队中的每个人都可以拥有相同的、更新的机器。在我尝试shell_exec()…脚本提示密码之前,一切都很好,但在键入密码后,密码被卡住了 我不想通过ssh执行远程命令,只需为用户打开ssh会话。用户必须通过键入“php script.php”从Linux shell执行脚本 谢谢 下面是我的简单脚本: <?php header('Content-Type: text/html; c
<?php
header('Content-Type: text/html; charset=utf-8');
echo "##############################\n";
echo "## SSH SCRIPT ##\n";
echo "##############################\n";
$result = getGroups();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $row['group_id'].") ".$row['name']."\n";
}
echo "Select:";
} else {
echo "No groups";
}
$groupID=trim(fgets(STDIN));
$result = getHosts($groupID);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $row['host_id'].") ".$row['hostname']."\n";
}
echo "Select:";
} else {
echo "0";
}
$hostID=trim(fgets(STDIN));
$result = getAddress($hostID);
ssh($result);
#### Functions ####
function getAddress($hostID) {
require("db.php");
$sql = "SELECT address FROM hosts WHERE host_id=".$hostID."";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
return $row['address'];
}
}
function getHosts($groupID) {
require("db.php");
$sql = "SELECT * FROM hosts WHERE group_id=".$groupID."";
$result = $conn->query($sql);
return $result;
}
function getGroups() {
require("db.php");
$sql = "SELECT * FROM groups";
$result = $conn->query($sql);
return $result;
}
function ssh($ip) {
shell_exec('ssh root@'.$ip.'');
}
?>
其他建议:将其转换为动态创建脚本或调用SSH URL处理程序的web应用程序。它不能创建为web应用程序:(