Već duže vrijeme muku mučim kako bih pronašao dobar Linux RDP program, zašto? Svi znamo da ih postoji mnogo i da su se razni klijenti koristili. Jedan od najpoznatijih koji je svojim vremenom dolazio instaliran s Ubuntu OS-om je “rdesktop”. Rdesktop se super pokazao za korištenje prilikom spajanja na sustave starijih generacija kao što su:
Windows 2000, XP, Server 2003, 2003 R2, 2008, 2008 R2
Ako želite znati više o RDesktop programu možete informacije pronaći ovdje – RDesktop Website. Problem se kod nas bivših korisnika Linux OS-a pojavio prilikom izlaska Windows 8 i Server 2012 OS-a koji su donijeli novu verziju “Remote Desktop Protocol-a”, a to je RDP 8.0. Nova verzija RDP-a nam donosi mnogo novih mogućnosti i novosti kao što su:
- Prilagodljiva grafika brzini veze
- Automatski odabir TCP ili UDP prijenosa
- Podršku za ekrane na dodir s više dodirnih točaka
- Direct 11 podršku za vGPU, te još mnogo toga….
Ako želite detaljnije informacije možete ih pronaći na URL – RDP v4.0-8.1.
Zbog navedenih novosti u samom radu protokola, novim dodacima i većoj sigurnosti više se nije moguće spojiti na Windows 8.0 i 2012 ili noviji sa standardno poznatih RDC klijenata.
Za potrebe spajanja sam pronašao i testirao klijent koji se zove FreeRDP. Na stranici možete pronaći upute za instalaciju i pokretanje. Pošto jako puno koristim RDC klijente i SSH klijente kao administrator sustava u svojoj tvrtki sam izradio jednu skriptu koja može pomoći pri spajanju na željene poslužitelje. Skripta je pisana u BASH-u te se može pokrenuti na svakom Linux OS-u. Skriptu mi je pomogao napisati moj dragi kolega i prijatelj pod nadimkom Fly.
Skripta izgleda ovako:
#!/bin/bash
# function to invoke RDS connections
conrds()
{
RUSER="rdp_username"
RPASS="rdp_password"
if [ -z "$1" ]; then
return 1;
fi
screen -A -m -d -S Ime_Servera05 xfreerdp /f /u:$RUSER /p:$RPASS /v:$1
return 0;
}
# function to invoke ssh connections [accepts 3 params $1:server, [$2:username, [$3:port]]
conssh()
{
if [ -z "$1" ]; then
return 1;
fi
if [ -z "$2" ]; then
2="SSH_Username"
fi
if [ -z "$3" ]; then
3="SSH_Port"
fi
ssh $2@$1 -p $3
return $?
}
if [ "$1" == "" ]; then
echo "Odaberite server:"
prompt="Unesite broj servera [ENTER]:"
options=( "Server01" "Server02" "Server03" "Server04" "Server05" "Server06" "Server07" )
PS3="$prompt "
select opt in "${options[@]}" "Izlaz"; do
COUNT=$(( ${#options[@]}+1 ))
if [ $REPLY -le $COUNT ]; then
if [ $REPLY -eq $COUNT ]; then
exit 0
else
CSERV=$REPLY
break
fi
else
echo -e "Neispravan unos"
exit 1
fi
done
else
CSERV=$1
fi
case $CSERV in
"1" | "Server01")
conrds "Server01 FQDN or IP"
exit $?
;;
"2" | "Server02")
conrds "Server02 FQDN or IP"
exit $?
;;
"3" | "Server03")
conrds "Server03 FQDN or IP"
exit $?
;;
"4" | "Server04")
conrds "Server04 FQDN or IP"
exit $?
;;
"5" | "Server05")
conrds "Server05 FQDN or IP"
exit $?
;;
"6" | "Server06")
conrds "Server06 FQDN or IP"
exit $?
;;
"7" | "Server07")
conssh "Server07 FQDN or IP" "SSH_Username" "SSH_Port"
exit $?
;;
*)
echo -e "Neispravan unos"
exit 2
;;
esac
Nakon pokretanja skripte dobijemo sljedeći prozor koji očekuje da odaberemo željeni server za spajanje.
U skripti gdje se spominje FQDN ili IP potrebno je unijeti DNS ime ili IP adresu servera na koji se želimo spojiti.
Kako bi skripta uspješno radila na Linux OS-u trebate imati instaliranu aplikaciju “screen”.
Na Ubuntu/Debian distribucijama ako ju nemate možete to instalirati pokretanjem komande iz terminala:
sudo apt-get install screen
ili
aptitude install screen
Nadam se da je barem nekome poslužilo. Ako trebate pomoć slobodno pošaljite email na adresu.
