141 lines
3.1 KiB
Bash
Executable file
141 lines
3.1 KiB
Bash
Executable file
#/bin/bash
|
|
|
|
#
|
|
# little class about bash extension parametters.
|
|
#
|
|
# ${myvar#pattern} delete shortest occurence from the begining
|
|
# ${myvar##pattern} delete longuest occurence from begining
|
|
# ${myvar%pattern} delete shortest occurence from the end
|
|
# ${myvar%%pattern} delete longuest occurence from the end
|
|
#
|
|
# conclusion, use of # will delete the pattern at begining
|
|
# and % will delete the parameter at the end.
|
|
|
|
|
|
default_user="root"
|
|
default_hostname="localhost"
|
|
default_ssh_port="22"
|
|
default_rsp_port="3389"
|
|
default_vnc_port="5900"
|
|
|
|
Version="2.0.0"
|
|
|
|
Help_message="
|
|
$(basename $0) PROTOCOL [OPTION] [OPTION=VALUE]
|
|
|
|
script which permit to launch a remote connection protocol.
|
|
|
|
PROTOCOL available
|
|
ssh A command line protocol which can be used to connect with tcp
|
|
rsp The windows remote server protocol
|
|
|
|
PROTOCOL #TODO
|
|
vnc Virtual Networking Computing, permit to have access to a graphical user interface.
|
|
|
|
OPTION available
|
|
-v, --version print the version and exit
|
|
-h, --help print this help and exit
|
|
-u <user>,--user=<user> Select the user, by default root
|
|
-p <port>,--port=<port> Select the port, by default 10022
|
|
-H <hostname>, --hostname=<hostname> Select the hostname to connect
|
|
"
|
|
|
|
|
|
start_ssh() {
|
|
if [ "${port}" == "" ]
|
|
then
|
|
port="${default_ssh_port}"
|
|
fi
|
|
echo "start ssh with user=${user} port=${port} hostname=${hostname}"
|
|
ssh -o "StrictHostKeyChecking no" -o "UserKnownHostsFile=/dev/null" -p "${port}" "${user}@${hostname}"
|
|
}
|
|
|
|
start_rsp() {
|
|
if [ "${port}" == "" ]
|
|
then
|
|
port="${default_rsp_port}"
|
|
fi
|
|
hostname="${hostname}:${port}"
|
|
echo "start rsp"
|
|
xfreerdp /v:"${hostname}" /u:"${user}" /dynamic-resolution
|
|
}
|
|
|
|
|
|
case "$1" in
|
|
"ssh")
|
|
protocol="ssh"
|
|
;;
|
|
"rsp")
|
|
protocol="rsp"
|
|
;;
|
|
*)
|
|
echo "protocol $1 uknown" >&2
|
|
exit 1
|
|
esac
|
|
|
|
# looking for double parametters.
|
|
|
|
for (( arg=2; arg<$#; arg++)); do
|
|
value="$((arg+1))"
|
|
if [ "${!arg}" == "-u" ]
|
|
then
|
|
user="${!value}"
|
|
elif [ "${!arg}" == "-p" ]
|
|
then
|
|
port="${!value}"
|
|
elif [ "${!arg}" == "-H" ]
|
|
then
|
|
hostname="${!value}"
|
|
fi
|
|
done
|
|
|
|
|
|
# looking for all parametter alone
|
|
|
|
for i in "$@"; do
|
|
if [ "${i%=*}" == "--user" ]
|
|
then
|
|
user="${i#*=}"
|
|
elif [ "${i%=*}" == "--port" ]
|
|
then
|
|
port="${i#*=}"
|
|
elif [ "${i#*=}" == "--hostname" ]
|
|
then
|
|
hostname="${i#*=}"
|
|
elif [ "${i}" == "--version" ] || [ "${i}" == "-v" ]
|
|
then
|
|
echo "$(basename $0) v.${Version}"
|
|
exit 0
|
|
elif [ "${i}" == "--help" ] || [ "${i}" == "-h" ]
|
|
then
|
|
echo "$Help_message"
|
|
exit 0
|
|
fi
|
|
done
|
|
|
|
if [ "${user}" == "" ]
|
|
then
|
|
user="${default_user}"
|
|
fi
|
|
if [ "${hostname}" == "" ]
|
|
then
|
|
hostname="${default_hostname}"
|
|
fi
|
|
|
|
|
|
|
|
case "${protocol}" in
|
|
"ssh")
|
|
start_ssh
|
|
;;
|
|
"rsp")
|
|
start_rsp
|
|
;;
|
|
*)
|
|
echo "CRITICAL protocol ${protocol} uknown" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
|
|
|