diff --git a/remote_connection.sh b/remote_connection.sh index 9ebf8ec..06f02fb 100755 --- a/remote_connection.sh +++ b/remote_connection.sh @@ -12,34 +12,77 @@ # and % will delete the parameter at the end. -User="root" -Port=10022 -Version="1.1.0" +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) [OPTION] [OPTION=VALUE] +$(basename $0) PROTOCOL [OPTION] [OPTION=VALUE] -script which permit to launch ssh to connect to the vm on localhost without letting any traces on this computer. +script which permit to launch a remote connection protocol. - -u ,--user= Select the user, by default root - -p ,--port= Select the port, by default 10022 +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= Select the user, by default root + -p ,--port= Select the port, by default 10022 -H , --hostname= Select the host to connect #TODO - -P , --protocol= Select the protocol to use #TODO " +start_ssh() { + if [ "${port}" == "" ] + then + port="${default_ssh_port}" + fi + echo "start ssh" +} + +start_rsp() { + if [ "${port}" == "" ] + then + port="${default_rsp_port}" + fi + echo "start rsp" +} + + +case "$1" in + "ssh") + protocol="ssh" + ;; + "rsp") + protocol="rsp" + ;; + *) + echo "protocol $1 uknown" >&2 + exit 1 +esac + # looking for double parametters. -for (( arg=1; arg<$#; arg++)); do +for (( arg=2; arg<$#; arg++)); do value="$((arg+1))" if [ "${!arg}" == "-u" ] then - User=${!value} + user="${!value}" elif [ "${!arg}" == "-p" ] then - Port=${!value} + port="${!value}" + elif [ "${!arg}" == "-H" ] + then + hostname="${!arg}" fi done @@ -49,10 +92,13 @@ done for i in "$@"; do if [ "${i%=*}" == "--user" ] then - User="${i#*=}" + user="${i#*=}" elif [ "${i%=*}" == "--port" ] then - Port="${i#*=}" + port="${i#*=}" + elif [ "${i#*=}" == "--hostname" ] + then + hostname="${i#*=}" elif [ "${i}" == "--version" ] || [ "${i}" == "-v" ] then echo "$(basename $0) v.${Version}" @@ -64,10 +110,35 @@ for i in "$@"; do fi done -echo try to connect with user=${User} and port=${Port} -echo port=${Port} +if [ "${user}" == "" ] +then + user="${default_user}" +fi +if [ "${hostname}" == "" ] +then + hostname="${default_hostname}" +fi -ssh -o "StrictHostKeyChecking no" -o "UserKnownHostsFile=/dev/null" -p ${Port} ${User}@localhost + + +case "${protocol}" in + "ssh") + start_ssh + ;; + "rsp") + start_rsp + ;; + *) + echo "CRITICAL protocol ${protocol} uknown" >&2 + exit 1 + ;; +esac + + +echo try to connect with user=${user} and port=${port} +echo port=${port} + +ssh -o "StrictHostKeyChecking no" -o "UserKnownHostsFile=/dev/null" -p ${port} ${user}@localhost # add possibility for vnc and rsp