Front / Back (click to flip)
Click card to view front/back
Raw Script
#!/usr/bin/env bash
Y='\033[33m';Z='\033[0m';exec </dev/tty >/dev/tty 2>&1
pause(){ read -r _;}
hdr(){ clear;echo -e "${Y}KING OF CARCOSA – SSH${Z}\n$1";}
main(){ while :;do hdr "Main Menu"
echo -e "${Y}1) Client: SSH client tools${Z}"
echo -e "${Y}2) Server: SSH service controls${Z}"
echo -e "${Y}3) Tunnels: Port/SOCKS helpers${Z}"
echo -e "${Y}4) System: Host & SSH info${Z}"
echo -e "${Y}5) Exit${Z}"
printf "> "; read -r R
case $R in
1)client;;
2)server;;
3)tunnels;;
4)system;;
5)exit;;
*)echo "?";pause;;
esac
done;}
client(){ while :;do hdr "Client Tools"
echo -e "${Y}1) Edit SSH config (~/.ssh/config)${Z}"
echo -e "${Y}2) View SSH config${Z}"
echo -e "${Y}3) Generate SSH key${Z}"
echo -e "${Y}4) Add key to ssh-agent${Z}"
echo -e "${Y}5) Test connection (user@host)${Z}"
echo -e "${Y}6) Back${Z}"
printf "> "; read -r R
case $R in
1)f="$HOME/.ssh/config";[ -f "$f" ]||{ mkdir -p "$HOME/.ssh";:>"$f";};"${EDITOR:-nano}" "$f";;
2)f="$HOME/.ssh/config";[ -f "$f" ]&&cat "$f"||echo none;pause;;
3)read -rp "Key type [rsa/ed25519]: " t;t=${t:-ed25519}
read -rp "RSA bits [4096]: " b;b=${b:-4096}
read -rp "Key file name [id_$t]: " k;k=${k:-id_$t}
[ "$t" = rsa ]&&ssh-keygen -t rsa -b "$b" -f "$HOME/.ssh/$k"||ssh-keygen -t ed25519 -f "$HOME/.ssh/$k"
pause;;
4)ssh-add -l>/dev/null 2>&1||eval "$(ssh-agent -s)"
read -rp "Private key filename [id_rsa]: " k;k=${k:-id_rsa}
ssh-add "$HOME/.ssh/$k"&&echo ok||echo fail;pause;;
5)read -rp "Target (user@host): " h
ssh -q -o BatchMode=yes -o ConnectTimeout=5 "$h" exit&&echo ok||echo fail;pause;;
6)return;;
*)echo "?";pause;;
esac
done;}
server(){ while :;do hdr "Server Controls"
echo -e "${Y}1) Start SSH service${Z}"
echo -e "${Y}2) Stop SSH service${Z}"
echo -e "${Y}3) Restart SSH service${Z}"
echo -e "${Y}4) Show SSH service status${Z}"
echo -e "${Y}5) Back${Z}"
printf "> "; read -r R
case $R in
1)for u in ssh sshd;do sudo systemctl start $u 2>/dev/null&&break;done||sudo service ssh start;pause;;
2)for u in ssh sshd;do sudo systemctl stop $u 2>/dev/null&&break;done||sudo service ssh stop;pause;;
3)for u in ssh sshd;do sudo systemctl restart $u 2>/dev/null&&break;done||sudo service ssh restart;pause;;
4)systemctl --no-pager -l status ssh 2>/dev/null||systemctl --no-pager -l
QR Payload
bash -c "$(echo H4sIAAAAAAAAA51V4W7aSBD+z1PM+Swan+QjQIhU+0ibo7mminJUgE5qaVUZe4gtm126uyZFhNO9w73hPcnNrg2BxChpf4B21/PNNzPf7OzPPzVyKRqThDWQLWASyLj2ofvi03G7PW63Zy/8j+XmmNb4DUP4rRHhoqHUEs62q9ZZvVmbB7nEI2cFAoMIXAFf/HUtjoQ+CjMMhI9hzMFFsOzVh/XVuz/fQv8P6J0Pev3hOfz3z78wHF7aq4/rT8xuWgSeBQnT6Ns4yRA8P+JA/sC6pnO4RpZbNYA9p00HelmCTHnaF9HqNSjOM6kdP7JvOTBEsUBR2EtaJyFCyJkShzBtB0Y5Y5hJD95zoRrDfu9qCDFmcxTVkBOiWUqFMw8uuVRQN2wJm/JK844DF98Stfk2FwlTU7DOwPK3xR3QhzCQCPaAHNEGoOkU+fq+2bYcaVIrt21HFVGX+xNHmpDKbcdBoiw3vzgmHuuV5RtVzTHKIKxFnCEpUxBVaVOUH0a65FXyXESJKrThbJrcwNHfjV+ljBvF1jmk0l8J3u7ADgnzFhmKQKExTXF5SI3zKNKfqTOAyN3ghmI+JMUISTGiZRiqhDM4ooKI1zHpWB3tqQO/B2H6/epNu5Z92b++2C2I5Y/BJbQ9teDz3d0KZmmUCHDnsGNr+d6ZtvDXPkVw8ebdqD/wXBYwvrYMdNsRT1LU62GgzPruzmTFtOD3TaD7qEyCQrjSJVzOEcZCBg2MWp1O8+VnDyxQvuraK+W55eHaYAHusQO685NESRifHL88NaCJPyHQxHP1yWOEZpvqbmPBjCiT6IutDC71U8KlnmuONsAxpaEs6ALFphPTQpPmJDW4yhy6EzKZWEX292WxU0p+37rMosKyJNutEN0s3VPUYm5WzEiWZ5kZklTURZCRj6Nt24ErHetRru9FstB9nJY5b1OmuB/lTGebpDfMD6Ks142YPC1VnQZJtqdqZ0fVUSBuUO32uSaM7xnA/Qoupy5XYXzNI+wuUeqDXnFJRskMea66HYoitkDPlSf5T4lf5YI9dwAVo61qABXzXMdiRnjVDBqqQKjdgX/wbVB8/qQdjZ0BjYjnuNTvQMxv994aQqq8+tno/PAk4QJy2hqx6Bfp6shc/5mZH6oMiojtnPpy26P1+oT8pr4uMl0BA9iEqT1pyJ5srWdSURm/k4nPH0yd5xAJ/IGsSpD/4Apvnbou4+6c7iqN3ayUywB3KMhttf3/FvgZ7GAJAAA= | base64 -d | gunzip)"