osh*_*nen 16 remote remote-desktop freerdp
目前,我正在使用以下命令启动 FreeRDP 会话:
$ sudo xfreerdp /v:farm.company.com /d:company.com \
/u:oshiro /p:oshiro_password /g:rds.company.com
Run Code Online (Sandbox Code Playgroud)
工作正常。但是,我不希望密码像那样在命令行中。所以我在没有密码的情况下尝试了它:
$ sudo xfreerdp /v:farm.company.com /d:company.com /u:oshiro /g:rds.company.com
Run Code Online (Sandbox Code Playgroud)
我收到一条连接失败消息,而不是某种对话框或提示,要求我输入密码。
是否有可能让这个提示用户输入密码?
更新:省略/p
开关
没有/p
开关,我得到以下信息:
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
Run Code Online (Sandbox Code Playgroud)
slm*_*slm 16
诀窍是将密码开关放在命令行的末尾,以便您可以将其留空。这将触发xfreerdp
提示您输入密码,而不必通过命令行提供。
$ xfreerdp /v:farm.company.com /d:company.com /u:oshiro /g:rds.company.com /p
Run Code Online (Sandbox Code Playgroud)
旧的 cli 界面 (v1.0.2)
$ xfreerdp -u oshiro -d company.com farm.company.com -t 3389 -p
Run Code Online (Sandbox Code Playgroud)
注意:新的 CLI 在预发行版 v1.1+ 中可用,因此请特别注意您使用的是哪个版本。运行该命令xfreerdp --version
将显示哪个。另请查看wiki中的发布主题,以获取有关每个主题的更多信息。
这是我连接到 RDP 服务器的示例。
$ xfreerdp --ignore-certificate -u smingolelli -d mydom -t 5000 rdp.mydom.com -p
connected to rdp.mydom.com:5000
Password:
Run Code Online (Sandbox Code Playgroud)
FreeRDP 问题跟踪器中的此问题标题为:Prompt for Credentials - NLA #1512,其中包含如何zenity
使用 GUI 对话框提示用户输入用户名和密码,然后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
Run Code Online (Sandbox Code Playgroud)
上面的代码在执行时会将这些对话框弹出给用户。这些将依次出现。
小智 7
如果指定 tls security,远程计算机将提示输入密码:
Xfreerdp --sec tls
Run Code Online (Sandbox Code Playgroud)
新的参数格式:
/sec:tls
Run Code Online (Sandbox Code Playgroud)
小智 7
我想扩展slm 的 解决方案。我想要一个窗口来输入所有信息,并允许我一次性指定一个 RemoteApp,所以我根据他对 zenity 的建议进行了构建并创建了这个。
XFreeRDP 提示
代码:
#!/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=""
Run Code Online (Sandbox Code Playgroud)
特征:
计划:
我在我的 #!++ 笔记本电脑上使用它并成功连接到我的公司和 VM 远程应用程序和客户端服务器。我没有编写脚本的经验,所以如果有人有任何建议或反馈,我很乐意听取他们的意见。