Vzdialená podpora pri ištalácii

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

Verzia: 0.1.0 © Curo s.r.o. | Táto stránka nepoužíva keksíky a nepotrebuje JavaScript.
Komunikujeme cez  Matrix