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.