Correction de bugs + Gestion clef SSH + Pétage de câbles
This commit is contained in:
parent
6d243a0f5c
commit
85b3c5f58c
34
ajax.php
34
ajax.php
@ -4,6 +4,7 @@ ini_set('display_errors', true);
|
|||||||
require_once 'config.php';
|
require_once 'config.php';
|
||||||
require_once 'utils.php';
|
require_once 'utils.php';
|
||||||
require_once 'Net/SSH2.php';
|
require_once 'Net/SSH2.php';
|
||||||
|
require_once 'Crypt/RSA.php';
|
||||||
global $servers;
|
global $servers;
|
||||||
$gitstatus = 'git fetch && git status';
|
$gitstatus = 'git fetch && git status';
|
||||||
|
|
||||||
@ -18,14 +19,43 @@ if (!empty($_POST['section'])) {
|
|||||||
|
|
||||||
if (!empty($_POST['action'])) {
|
if (!empty($_POST['action'])) {
|
||||||
$session = new Net_SSH2($config['host'], $config['port']);
|
$session = new Net_SSH2($config['host'], $config['port']);
|
||||||
if ($session->login($config['user'], $config['pass'])) {
|
|
||||||
|
if (!empty($config['key'])) {
|
||||||
|
$key = new Crypt_RSA();
|
||||||
|
if (!empty($config['keypass'])) {
|
||||||
|
$key->setPassword($config['keypass']);
|
||||||
|
}
|
||||||
|
$keypass = $config['key'];
|
||||||
|
if (file_exists($config['key'])) {
|
||||||
|
$keypass = file_get_contents($config['key']);
|
||||||
|
}
|
||||||
|
if ($key->loadKey($keypass)) {
|
||||||
|
$session->login($config['user'], $key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!$session->isConnected()) {
|
||||||
|
$session->login($config['user'], $config['pass']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($session->isConnected()) {
|
||||||
if ($_POST['action'] == 'status') {
|
if ($_POST['action'] == 'status') {
|
||||||
echo ansi2html($session->exec('bash -c \'cd ' . $config['path'] . ' && ' . $gitstatus . "'"));
|
echo ansi2html($session->exec('bash -c \'cd ' . $config['path'] . ' && ' . $gitstatus . "'"));
|
||||||
|
exit;
|
||||||
} else if ($_POST['action'] == 'push') {
|
} else if ($_POST['action'] == 'push') {
|
||||||
$message = empty($_POST['message']) ? 'FTP' : str_replace(array('"', "'"), ' ', stripslashes($_POST['message']));
|
$message = empty($_POST['message']) ? 'FTP' : str_replace(array('"', "'"), ' ', stripslashes($_POST['message']));
|
||||||
echo ansi2html($session->exec('bash -c \'cd ' . $config['path'] . ' && git add -A && git commit -m "' . $message . '" && git push && ' . $gitstatus . "'"));
|
echo ansi2html($session->exec('bash -c \'cd ' . $config['path'] . ' && git add -A && git commit -m "' . $message . '" && git push && ' . $gitstatus . "'"));
|
||||||
|
exit;
|
||||||
} else if ($_POST['action'] == 'pull') {
|
} else if ($_POST['action'] == 'pull') {
|
||||||
echo ansi2html($session->exec('bash -c \'cd ' . $config['path'] . ' && git pull && ' . $gitstatus . "'"));
|
echo ansi2html($session->exec('bash -c \'cd ' . $config['path'] . ' && git pull && ' . $gitstatus . "'"));
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
echo 'Unknown command ' . $_POST['action'];
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo 'Permission denied, please try again.';
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
echo 'error';
|
||||||
|
@ -5,6 +5,14 @@
|
|||||||
// TRUE : Sécurité si vous executez Git Center sur un serveur GitLab
|
// TRUE : Sécurité si vous executez Git Center sur un serveur GitLab
|
||||||
define('ONGITLAB', false);
|
define('ONGITLAB', false);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dans le cas d'une connexion avec une clef RSA (clef privée) :
|
||||||
|
* -- Le mot de passe SSH (pass) est facultatif et sera utilisé en car de refus de connexion avec la clef
|
||||||
|
* -- Le keypass est le mot de passe de la clef (laissez vide ou omettez pas le champ si vous n'avez pas mis de keypass)
|
||||||
|
* -- Le key est votre clef privée qui peut être soit un chemin (absolu ou relatif) vers le fichier id_rsa soit LA FUCKING CLEF PRIVÉE EN DUR !!!
|
||||||
|
* ^ OUI ÇA FONCTIONNE OMGWTFBBQ11
|
||||||
|
*/
|
||||||
|
|
||||||
// Définition de la forêt de serveurs
|
// Définition de la forêt de serveurs
|
||||||
$servers = array(
|
$servers = array(
|
||||||
'Groupe de serveur 1' => array(
|
'Groupe de serveur 1' => array(
|
||||||
@ -29,17 +37,19 @@ $servers = array(
|
|||||||
'host' => '192.168.1.30',
|
'host' => '192.168.1.30',
|
||||||
'port' => 22,
|
'port' => 22,
|
||||||
'user' => 'root',
|
'user' => 'root',
|
||||||
'pass' => 'root',
|
'pass' => 'partoutatiss',
|
||||||
'path' => '/home/user/root'
|
'path' => '/home/user/root'
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
'Groupe de serveur 2' => array(
|
'Groupe de serveur 2 conf RSA' => array(
|
||||||
'prod3' => array(
|
'prod3' => array(
|
||||||
'title' => 'Production de la mort',
|
'title' => 'Production de la mort',
|
||||||
'host' => '192.168.1.40',
|
'host' => '192.168.1.40',
|
||||||
'port' => 22,
|
'port' => 22,
|
||||||
'user' => 'root',
|
'user' => 'root',
|
||||||
'pass' => 'root',
|
'pass' => 'root',
|
||||||
|
'key' => '/Users/tamere/.ssh/id_rsa',
|
||||||
|
'keypass' => 'rootdelaclefrsa',
|
||||||
'path' => '/home/user/root'
|
'path' => '/home/user/root'
|
||||||
),
|
),
|
||||||
'test3' => array(
|
'test3' => array(
|
||||||
@ -47,7 +57,33 @@ $servers = array(
|
|||||||
'host' => '192.168.1.40',
|
'host' => '192.168.1.40',
|
||||||
'port' => 22,
|
'port' => 22,
|
||||||
'user' => 'user',
|
'user' => 'user',
|
||||||
'pass' => 'blbl',
|
'key' => '-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIIEpAIBAAKCAQEAw/scCsz9rtp+2VzUwpkdqNHPy6vqS72qvy3dt04U0rHj6NVv
|
||||||
|
/L+zF3M0EfULpNAB6D5XY35D854IKZ/Dwcp1/2xjPkLJ+XaLl38TUStLfMQA8EgR
|
||||||
|
EVzW5QrAte8xZOF35lyfoi5HBQay8R3d3SqIoRFzINEpWHtwlIHbf6CACQ1Rgx2J
|
||||||
|
gQo1/i8gu2xzp7T04cGSWguCEKbQsDqLTHNGYTDl2fTJki9b3NE6Fm+0/qp87pPq
|
||||||
|
YVNqapwPYlVDpmql4kcomPKnBzo3/ThFXeq5iwJMKwTgqnVUIttKTKJ1/HB83VPM
|
||||||
|
n/+FR+hwkcqtgSiPLI9ddtsRikO1auG8h1aB3wIDAQABAoIBAHgkSFyWri2y5HB7
|
||||||
|
6DIji3sipDBHg6pK65GnnHPy+fDv/LePoMdg/XkytokLn8e5fHHTRd9IWH/QMVDT
|
||||||
|
ED6Mzyl2WKCicQ7tDUYiMMVhtTUXMzwZ8dyi/VoL7Xea2rztO4OM5I+XrxH1uVz2
|
||||||
|
4jvjBz82Y02K673CbpGbyePDkLn6yzlmRpEOFEwH+169a44i/gV4HcC3Vo7ULX74
|
||||||
|
SP/yOGcvBD7e9t1BgELmcLn+Y5EhOVQT6O3hRW20CSnA4yQ+fe2KhCM2EJRlZ88S
|
||||||
|
uuXK2GSEMLmv0+W+GCQHskUEBQRtCfteYHYXZmJwhLgYuUZXUy2SYHuNNO01x3lG
|
||||||
|
reGvTgECgYEA/xpW5fUjb1KAYAr+/ETzsYk3/v72akQSuYVV5cpre0+wg+RJNa3E
|
||||||
|
adhpIqKz8l4BhXB5d93cxMNr7x3q+hVFeCsgRcMVLSf3fFPx3uw6stCxt2c6lvQm
|
||||||
|
/RP6KsE7OG4Vse47tKE1Jop4JIHlbNkIWdrxbUDsRM/OHDsfR/pFBvECgYEAxKuL
|
||||||
|
Z8GZqqvpBZDEQ2s55WUJz1lRGJNQuVopabZCkOVpRNCkM15MYDLaj1gcOMrWXtZp
|
||||||
|
LEHyFtNf5cLfcwdL6AGFysoTYltMIwLs0sOetMNO6p8ViyEjbphpsq5vOw4wSgOI
|
||||||
|
eIPJeZesMu1ZrB6W68fYXm7wOVeZqMqImmx2Nc8CgYEAo0lbyBPSG6aGT3OaZSVJ
|
||||||
|
iyEW+5x9Y+WwyplDMzQO+j428SVFixtv9oQ0P5w/bGqptJ0a0xPrBPNFeif/SRYm
|
||||||
|
glWwcZb+TgogCq+8yQESTXTx3EAyK3+aGTIZVhabbnJgZqTkCKmLWOEXJ98RWEvP
|
||||||
|
YZyYHmOJGD6fYkihrDPQzTECgYBMaXY9dtv0ktxznB6VLzkMZqhcFpDKopoPmfdT
|
||||||
|
KkxMrcWrxgC2MKIuEjQW054Ldsu5h0bPukOMGM4+n+tfbutQFh9cfgzv/xbi14Ua
|
||||||
|
EoU8KFImGG8vYk2476DJmrp+0HF0oFDKujFye7qdAtj/ZdcvfrMTZbkSHnYGPcK7
|
||||||
|
dP6swwKBgQDT95rsxbXPtpA03H46GpVeBYJ5ARepPpObrilYxkt5LymncAJykAvr
|
||||||
|
KW6dcEHI6KsqCFJz+jqUeuKEM9yHn23UtvxiUDEtdbRJ6yKIhJzwG/c/ZOxWlIVR
|
||||||
|
PLBLwUI2uDV8cMCdDfEYMxkBbMHP4L2IDKjEIznGRIw386Cq2LsOmg==
|
||||||
|
-----END RSA PRIVATE KEY-----',
|
||||||
'path' => '/home/user/test'
|
'path' => '/home/user/test'
|
||||||
),
|
),
|
||||||
'prod4' => array(
|
'prod4' => array(
|
||||||
@ -55,7 +91,7 @@ $servers = array(
|
|||||||
'host' => '192.168.1.50',
|
'host' => '192.168.1.50',
|
||||||
'port' => 22,
|
'port' => 22,
|
||||||
'user' => 'root',
|
'user' => 'root',
|
||||||
'pass' => 'root',
|
'pass' => 'blbl',
|
||||||
'path' => '/home/user/root'
|
'path' => '/home/user/root'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -32,7 +32,7 @@ function callRequest(action, section, message) {
|
|||||||
|
|
||||||
var splitLabel = xhr.responseText.split("\n").reverse();
|
var splitLabel = xhr.responseText.split("\n").reverse();
|
||||||
label.classList.remove('label-warning');
|
label.classList.remove('label-warning');
|
||||||
if (!splitLabel[1].match(/nothing to commit/) || xhr.responseText.match(/by [0-9]* commit/)) {
|
if ((typeof splitLabel[1] !== 'undefined' && !splitLabel[1].match(/nothing to commit/)) || xhr.responseText.match(/by [0-9]* commit/)) {
|
||||||
label.classList.add('label-important');
|
label.classList.add('label-important');
|
||||||
label.innerHTML = 'Update needed';
|
label.innerHTML = 'Update needed';
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user