#!/bin/bash # Default command anyterm will run. # Simply prompt the user for a username and # ssh locally as that user set -eo pipefail while : ; do echo -n "Username: " read U if [[ -z "$U" ]]; then echo "Disconnecting." exit fi # Make sure it does not start with a "-" and only contains valid # username characters. if [[ "$U" =~ ^[A-Za-z0-9_][A-Za-z0-9_-]*$ ]]; then cd ~ if [[ ! -e .ssh/known_hosts ]]; then mkdir -p --mode=700 .ssh for k in /etc/ssh/ssh_host_{rsa,dsa}_key.pub; do if [[ -r "$k" ]]; then echo -n "localhost.localdomain " cat "$k" fi done >.ssh/known_hosts fi ssh -l "$U" localhost.localdomain" || : else echo "Bad username." fi done