web-dev-qa-db-fra.com

Faites-vous un utilisateur rapide de FreerDP pour le nom d'utilisateur et le mot de passe?

Pour le moment, j'utilise le commandement suivant pour démarrer une session FreerDP:

$ Sudo xfreerdp /v:farm.company.com /d:company.com \
    /u:oshiro /p:oshiro_password /g:rds.company.com

Fonctionne bien. Cependant, je ne veux pas que le mot de passe soit dans la ligne de commande comme ça. Alors j'ai essayé sans le mot de passe:

$ Sudo xfreerdp /v:farm.company.com /d:company.com /u:oshiro /g:rds.company.com

Et j'ai reçu un message de défaillance de la connexion au lieu d'une sorte de boîte de dialogue ou d'invite à me demander d'entrer dans un mot de passe.

Est-il possible d'obtenir cela pour inviter l'utilisateur à un mot de passe?


Mise à jour: omettre le /p commutateur

Sans le /p Switch, je reçois ce qui suit:

oshiro@ubuntu:~$ xfreerdp /v:farm.company.com /d:company.com -u:oshiro /g:rds.company.com
connected to rds.company.com:443
connected to rds.company.com:443
Could not open SAM file!
Could not open SAM file!
Could not open SAM file!
Could not open SAM file!
rts_connect error! Status Code: 401
HTTP/1.1 401 Unauthorized
Content-Type: text/plain
Server: Microsoft-IIS/7.5
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
WWW-Authenticate: Basic realm="rds.company.com"
X-Powered-By: ASP.NET
Date: Sun, 23 Mar 2014 10:40:30 GMT +12
Content-Length: 13

rts_connect error!
rpc_connect failed!
Error: protocol security negotiation or connection failure
13
oshirowanen

Je voudrais développer sur SLM'Ssolution . Je voulais une seule fenêtre pour entrer toutes les informations dans et me permettre de spécifier un RemoteApp tout en une fois, donc j'ai construit sur ce qu'il a suggéré avec la zénity et créé cela.

Invite XFreerDP

XFreeRDP-Prompt

Code:

#!/bin/bash

# XFreeRDP RemoteApp W/ Prompt Script
# Version 0.3
# Description:
# XFreeRDP Remote App Script utilizing Zentity to populate variables
# Written by Jarrett Higgins 12-2015

OUTPUT=$(zenity --forms --title="Connection Information" \
    --text="Enter information about your Remote Connection" \
    --separator="," \
    --add-entry="Server" \
    --add-entry="Port (Default: 3389)" \
    --add-entry="Domain (Optional)" \
    --add-entry="Username" \
    --add-password="Password" \
    --add-entry="Remote App Name (Optional)")
OUTPUT_RESULTS=$?
if ((OUTPUT_RESULTS != 0)); then
    echo "something went wrong"
    exit 1
fi
Blank=""
Server=$(awk -F, '{print $1}' <<<$OUTPUT)
Port=$(awk -F, '{print $2}' <<<$OUTPUT)
if ["$Port" = "$Blank"]
then
    Port="3389"
else
    Port="$Port"
fi
Domain=$(awk -F, '{print $3}' <<<$OUTPUT)
Username=$(awk -F, '{print $4}' <<<$OUTPUT)
Password=$(awk -F, '{print $5}' <<<$OUTPUT)
App=$(awk -F, '{print $6}' <<<$OUTPUT)
if ["$App" = "$Blank"]
then
    App="$App"
    Title="$Server"
else
    AppName="$App"
    Title="$AppName on $Server"
    App="/app:||$App"
fi
#zenity --info --title="Information Return" --text="$Server $Port $Domain $Username $Password $App"
xfreerdp /t:"$Title" /v:$Server:$Port /d:$Domain /u:$Username /p:$Password $App /cert-ignore /workarea +clipboard
Password=""

Caractéristiques:

  • Par défaut du port 3389 s'il n'est pas peuplé
  • Par défaut n'est pas une application distante si elle n'est pas remplie

prévu:

  • Avertissement de certificat de sécurité
  • RDWeb Query pour fournir une liste de ressources

J'utilise ceci sur mon #! ++ ordinateur portable avec un grand succès pour se connecter à ma société et VM Applications distantes et serveurs de clients. Je n'ai pas expérimenté avec des scripts, donc si quelqu'un a des suggestions ou Commentaires, j'aimerais les entendre.

7
Jarrett Higgins

Si vous spécifiez la sécurité TLS, l'ordinateur distant demandera au mot de passe:

Xfreerdp --sec tls

Le nouveau format de paramètre:

  /sec:tls
3
Francisco Hernandez

Vous devez fournir un paramètre vide (sans valeur de mot de passe). Essaye ça:

Sudo xfreerdp /v:farm.company.com /d:company.com /u:oshiro /g:rds.company.com /p

Si cela ne fonctionne pas, vous pouvez y accomplir avec un script Bash simple.

Économisez ceci comme rdp.sh:

#!/bin/bash
# Read Password
echo -n Password: 
read -s password
echo
# Run Command
Sudo xfreerdp /v:farm.company.com /d:company.com /u:oshiro /g:rds.company.com /p:$password

Ensuite, faites exécutable de fichier:

chmod +x rdp.sh

Lancez-le:

./rdp.sh

Cela a été demandé et discuté de manière plus approfondie sur le problème GitHub de Xfreerdp: https://github.com/freerdp/freerdp/issues/1358

L'idée de script Bash est tirée de: https://stackoverflow.com/questions/3980668/how-to-get-a-password-from-a-shell-script-without-echoing

1
phoops

J'aime aussi Yad, en utilisant le script shell suivant.

#!/bin/sh
frmdata=$(yad --title "Connect to remote computer" --form --field="Remote computer" --field="Username" --field="Password:H" --field="Domain" --field="Gateway")
frmcomputer=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $1 }')
frmusername=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $2 }')
frmpassword=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $3 }')
frmdomain=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $4 }')
frmgateway=$(echo $frmdata | awk 'BEGIN {FS="|" } { print $5 }')
xfreerdp /v:$frmcomputer /f /d:$frmdomain /u:$frmusername /g:$frmgateway /p:$frmpassword /cert-ignore

Il fournit une bonne interface et cache le mot de passe.

enter image description here

1
the Wrath