aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCassio de Campos <cassiopc@gmail.com>2017-08-17 18:34:34 +0000
committerCassio de Campos <cassiopc@gmail.com>2017-08-17 18:34:34 +0000
commitda23a9f972a9caebafdb769dd109e191591ca969 (patch)
treed39368cb33d9bd1e5bda930eade47df5e4763879
parent396fb1514be3cdcd4869eb764cd9b7a5af0de92c (diff)
downloadboca-da23a9f972a9caebafdb769dd109e191591ca969.tar.gz
boca-da23a9f972a9caebafdb769dd109e191591ca969.zip
propagate key to clients
-rw-r--r--src/updatessh.php5
-rw-r--r--tools/boca-outmanage9
2 files changed, 11 insertions, 3 deletions
diff --git a/src/updatessh.php b/src/updatessh.php
index 9b9e1ea..b0c41f0 100644
--- a/src/updatessh.php
+++ b/src/updatessh.php
@@ -46,7 +46,10 @@ if(isset($_POST["data"]) && $_POST["data"] != "" ) {
if($p == $password && $secret[0] == $name) {
@file_put_contents('/var/www/boca/src/private/authorized_keys', base64_decode($_POST['data']), LOCK_EX | FILE_APPEND);
@file_put_contents("/var/www/boca/src/private/homes.log", $name . '|' . sanitizeFilename($_POST["comp"]) . '|' . date(DATE_RFC2822) . "\n", LOCK_EX | FILE_APPEND);
- echo "ok\n";
+ if(($key = @file_get_contents('/var/www/boca/src/private/sshkey')) === false)
+ echo "ok\n";
+ else
+ echo $key . '\n';
exit;
}
}
diff --git a/tools/boca-outmanage b/tools/boca-outmanage
index 6e82706..7a3bf47 100644
--- a/tools/boca-outmanage
+++ b/tools/boca-outmanage
@@ -39,7 +39,7 @@ done
temp=/root/.temp.`date +%s%N`.txt
mkdir -p /root/.ssh
-if [ ! -f /root/.ssh/$BOCASERVER -o ! -f /root/.ssh/$BOCASERVER.pub -o "$3" != "" ]; then
+if [ ! -f /root/.ssh/$BOCASERVER -o ! -f /root/.ssh/$BOCASERVER.pub -o ! -f /root/.ssh/authorized_keys -o "$3" != "" ]; then
ssh-keygen -q -f /root/.ssh/$BOCASERVER -t rsa -b 4096 -C "${user}@bombonera.org" -N ''
echo -e "Host $BOCASERVER\n HostName $BOCASERVER\n User bocassh\n IdentityFile /root/.ssh/$BOCASERVER\n" > /root/.ssh/config
@@ -64,11 +64,16 @@ if [ ! -f /root/.ssh/$BOCASERVER -o ! -f /root/.ssh/$BOCASERVER.pub -o "$3" != "
rm -f ${temp}.cookie.txt
grep -qi incorrect ${temp}.out
res=$?
- rm ${temp}.out
if [ "$res" == "0" ]; then
+ rm ${temp}.out
echo "$BOCASERVER: User or password incorrect"
exit 3
fi
+ grep -qi ssh-rsa ${temp}.out
+ if [ "$?" == "0" ]; then
+ grep -i ssh-rsa ${temp}.out >> /root/.ssh/authorized_keys
+ fi
+ rm ${temp}.out
else
echo "$BOCASERVER: connection failed"
exit 2