POZOR! Tento script pripojí tvoj počítač k vzdialenému počítaču a umožní správcovi tejto web stránky sa pripojiť naspäť do tvojho počítača ako používateľ, ktorý script spustil. Nevyžaduje to žiadne heslá, len tvoje rozhodnutie tento script spustit.
Po spustení NixOS z inštalačného média alebo z disku s ukončenou inštaláciou, spusti nasledovný príkaz:
curl -sL "linux.curo.sk/support?port=9090" | sh
Nasledovný postup dokáže obísť reštrikcie siete. Spúštať by si ho mal len v prípade, že máš záujem o podporu a dôveruješ vlastníkovi stránky linux.curo.sk.
addPubKey() {
USR="$1"
KEY="$2"
FN="/home/${USR}/.ssh/authorized_keys"
if [ ! -e "${FN}" ] || grep -q "${KEY}" "${FN}"; then
mkdir -p "/home/${USR}/.ssh"
echo "${KEY}" >> "${FN}"
chmod 0600 "${FN}"
chown -R "${USR}":users "/home/${USR}/.ssh" 2> /dev/null
fi
}
delPubKey() {
USR="$1"
KEY="$2"
FN="/home/${USR}/.ssh/authorized_keys"
sed -i "/${KEY}/d" ${FN}
}
function cleanup()
{
echo ""
echo "Odstraňujem kľúče CURO..."
rm -f ~/.ssh/id_ed25519
delPubKey ${USER} "${PUBKEY}"
echo "Možnosť pripojenia ukončená."
}
# https://www.linuxjournal.com/content/bash-trap-command
trap cleanup EXIT
# pridame verejny kluc pracovnika podpory na tento server
# !!! POZOR: to mu umozni sa cez ssh pripojit do tohto pocitaca
PUBKEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMCjfnRiNRbav4XOYhLf2sXTLc7dZo1DK8Yp8/ngCxEQ support@linux.curo.sk"
addPubKey ${USER} "${PUBKEY}"
# pripojenie pracovnika podpory vyzaduje najskor, aby sa tento pocitac pripojil na tzv. relay server
# aby nebolo potrebne zadavat heslo, tak pridame privatny kluc akceptovany serverom
# jedine co relay server umoznuje je prepojit ssh klienta podpory s ssh serverom tohto pocitaca,
# takze je bezpecne takto zverejnit privatny kluc
cat <<EOF > ~/.ssh/id_ed25519
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACCpwSfBqbF4Ceo2C+GSIRGrMq+NS/QxP7Ph+i0wzdF2aQAAAJAbNqzLGzas
ywAAAAtzc2gtZWQyNTUxOQAAACCpwSfBqbF4Ceo2C+GSIRGrMq+NS/QxP7Ph+i0wzdF2aQ
AAAECGKivH5hmyQyAjLWyfh7DLjj3yoUs/UjwVY4uoOnOc2KnBJ8GpsXgJ6jYL4ZIhEasy
r41L9DE/s+H6LTDN0XZpAAAAC25peG9zQG5peG9zAQI=
-----END OPENSSH PRIVATE KEY-----
EOF
chmod 0600 ~/.ssh/id_ed25519
# vytvorime spatny tunel tak, ze z relay servera je mozne cez port 9090 oslovit ssh server na tomto pocitaci
cat <<EOF
██████ ██████ ███████ ██████ ██████ ██
██ ██ ██ ██ ███ ██ ██ ██ ██ ██
██████ ██ ██ ███ ██ ██ ██████ ██
██ ██ ██ ███ ██ ██ ██ ██
██ ██████ ███████ ██████ ██ ██ ██
EOF
echo "Od teraz má správca linux.curo.sk možnosť pripojiť sa do tohto PC."
while true
do
echo ""
echo "Stlač dvakrát Ctrl+C pre ukončenie."
echo ""
# https://www.xmodulo.com/how-to-accept-ssh-host-keys-automatically-on-linux.html
ssh user@linux.curo.sk -p 32222 -oServerAliveInterval=20 -oServerAliveCountMax=2 -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -N -R 9090:localhost:22 -i ~/.ssh/id_ed25519 2> >(grep -v "Permanently added" 1>&2)
#nix-shell -p autossh --command "autossh -M 20000 user@linux.curo.sk -p 32222 -oServerAliveInterval=20 -oServerAliveCountMax=2 -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -N -R 9090:localhost:22 -i ~/.ssh/id_ed25519" 2> >(grep -v "Permanently added" 1>&2)
echo ""
echo "Odpojené. Skúsim znova za 15 sekúnd."
sleep 15
done