Заставить FreeRDP предложить пользователю имя пользователя и пароль?

Просто указание: Вино имеет встроенную cmd утилиту, однако это не полностью функционально. Для выполнения его просто введите

wine cmd
13
23.03.2014, 12:42
5 ответов

Хитрость заключается в том, чтобы поместить переключатель пароля в конец командной строки, чтобы вы могли оставить его пустым. Это запустит xfreerdp , чтобы запросить пароль вместо того, чтобы вводить его через командную строку.

Пример

новый интерфейс cli (v1.1 +)
$ xfreerdp /v:farm.company.com /d:company.com /u:oshiro /g:rds.company.com /p
старый интерфейс cli (v1.0.2)
$ xfreerdp -u oshiro -d company.com farm.company.com -t 3389 -p

ПРИМЕЧАНИЕ: Новый интерфейс командной строки доступен в предварительных выпусках, v1.1 + , поэтому обратите особое внимание на то, какую версию вы используете. Выполнение команды xfreerdp --version покажет вам, какой из них. Также просмотрите раздел релизов в вики для получения дополнительной информации по каждому из них.

Пример подключения

Вот пример моего подключения к серверу RDP.

$ xfreerdp --ignore-certificate -u smingolelli -d mydom -t 5000 rdp.mydom.com -p
connected to rdp.mydom.com:5000
Password: 

Запрос пользователя

Эта проблема в системе отслеживания проблем FreeRDP, озаглавленная: Запрос учетных данных - NLA # 1512 , содержала этот фрагмент того, как можно использовать zenity для запроса user для имени пользователя и пароля с помощью диалоговых окон графического интерфейса пользователя, а затем запустите xfreerdp с предоставленной информацией после этого.

$ xfreerdp /v:yourRDSfarmFQDN \
/u:$(zenity \
--entry \
--title="Domain Username" \
--text="Enter your Username") \
/p:$(zenity \
--entry \
--title="Domain Password" \
--text="Enter your _password:" \
--hide-text) \
/d:yourdomainname \
/f \
/cert-ignore
+clipboard

При выполнении вышеупомянутого диалогового окна пользователю открывались бы эти диалоговые окна. Они будут появляться по очереди.

ss #1 ss #2

Ссылки

14
27.01.2020, 19:52

Если вы укажете безопасность TLS, удаленный компьютер запросит пароль:

Xfreerdp --sec tls

Новый формат параметра:

  /sec:tls
3
27.01.2020, 19:52

Я хотел бы расширить решение slm . Я хотел, чтобы в одно окно вводилась вся информация и позволяло мне указать RemoteApp за один раз, поэтому я с осторожностью построил то, что он предложил, и создал это.

Подсказка XFreeRDP

XFreeRDP-Prompt

Код:

#!/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=""

Характеристики:

  • По умолчанию порт 3389, если не заполнен
  • По умолчанию не задано удаленное приложение, если не заполнено

Планируется:

  • Предупреждение сертификата безопасности
  • Запрос RDWeb для предоставления списка ресурсов

Я использую его на своем ноутбуке #! ++ с большим успехом для подключения к моей компании, удаленным приложениям виртуальных машин и клиентским серверам. У меня нет опыта написания сценариев, поэтому, если у кого-то есть предложения или отзывы, я хотел бы их услышать.

7
27.01.2020, 19:52

Необходимо указать пустой параметр (без значения пароля). Попробуйте следующее:

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

Если это не сработает, вы можете сделать это с помощью простого сценария bash.

Сохраните это как 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

Затем сделайте файл исполняемым:

chmod +x rdp.sh

Запустите его:

./rdp.sh

Этот вопрос был задан и более подробно обсужден в вопросе github xfreerdp: https : //github.com/FreeRDP/FreeRDP/issues/1358

Идея сценария bash взята из: https://stackoverflow.com/questions/3980668/how-to-get-a-password- from-a-shell-script-без-повторения

1
27.01.2020, 19:52

Вы также можете использовать --from-stdin. Затем вам будет предложено ввести все необходимые значения, которые не были предоставлены.

Мне понравилось решение Jarretts, но с yad not zenity оно позволяет создавать поля со списком:

OUTPUT=$(yad --center --button="gtk-ok:0" --title "Remote Desktop" --form \
--field="Server:CB" "rds1.domain.local\!rds2.domain.local\!rds3.domain.local" \
--field="Port" "3389" \
--field="Domain" "DOMAIN.local" \
--field="Username" "" \
--field="Password:H" \
--field="Remote App Name" "")
0
27.01.2020, 19:52

Теги

Похожие вопросы