Kullanıcı adı ve şifre için FreeRDP istemi kullanıcısı olun?


13

Şu anda, FreeRDP oturumu başlatmak için aşağıdaki komutu kullanıyorum:

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

İyi çalışıyor. Ancak, parolanın komut satırında böyle olmasını istemiyorum. Bu yüzden şifre olmadan denedim:

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

Ve bir tür iletişim kutusu veya bir şifre girmemi isteyen komut istemi yerine bir bağlantı hatası mesajı aldım.

Bunu kullanıcıdan şifre istemek mümkün mü?


GÜNCELLEME: /pAnahtarın çıkarılması

/pAnahtar olmadan aşağıdakileri alıyorum:

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

Hangi xfreerdp sürümüne sahipsiniz? Debian wheezy freerdp-x11 1.0.1 ile, kaynaktan söyleyebildiğim kadarıyla (kontrol etmek için kullanışlı bir RDP sunucum yok), bir şifre istemi var.
Gilles 'SO- kötü olmayı kes'

1.2.0-beta1 sürümüne sahibim.
oshirowanen

2
Neden halt kullanıyorsun sudo?
MikeyB

Yanıtlar:


14

Hile, şifre anahtarını boş bırakabilmeniz için komut satırınızın sonuna koyuyor. Bu xfreerdp, komut satırından sağlamak yerine parolanızı girmenizi tetikler .

Misal

yeni cli arabirimi (v1.1 +)
$ xfreerdp /v:farm.company.com /d:company.com /u:oshiro /g:rds.company.com /p
eski cli arayüzü (v1.0.2)
$ xfreerdp -u oshiro -d company.com farm.company.com -t 3389 -p

NOT: Yeni CLI, ön sürümler v1.1 + 'da mevcuttur, bu nedenle kullandığınız sürüme özellikle dikkat edin. Komutun çalıştırılması xfreerdp --versionsize hangisinin olduğunu gösterecektir. Ayrıca , her biri hakkında daha fazla bilgi için wiki'deki sürümler konusuna göz atın .

Örnek bağlantı

İşte benim bir RDP sunucusuna bağlanmak için bir örnek.

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

Kullanıcıya sorma

FreeRDP sorun izleyicisindeki: Kimlik Bilgileri - NLA # 1512 başlıklı bu sorun zenity, kullanıcıdan GUI iletişim kutularını kullanarak bir kullanıcı adı ve parola istemek ve daha sonra xfreerdpsağlanan bilgilerle çalıştırmak için nasıl kullanabileceğinize ilişkin bu snippet'e sahipti .

$ 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

Yukarıda yürütüldüğünde bu iletişim kutuları kullanıcıya açılır. Bunlar sırayla birer tane olacak.

                   ss # 1         ss # 2

Referanslar


1
Bunun için teşekkürler. Ancak, denediğimde xfreerdp /v:farm.company.com /d:company.com /u:oshiro /g:rds.company.com /p, bana sadece belgeleri ve kullanabileceğim tüm komutları veriyor. Sonra şifreyi pçalışmaya başlar başlamaz koydum .
oshirowanen

@oshirowanen - /panahtarı hep birlikte atlarsanız ?
slm

Hata yorum olarak göndermek için çok uzun, bu yüzden orijinal soruyu hata mesajı ile güncelledim.
oshirowanen

@oshirowanen - bir hata olabilir gibi görünüyor: github.com/FreeRDP/FreeRDP/issues/1584 . Sizinkiyle aynı çıktıyı gösterir. FreeRDP ile ilgili bir sorun açarım, bunu nasıl yapacağınızdan emin değilseniz daha fazla LMK'ya yardımcı olabilirim.
slm

bunun yerine zenity --entry --text="Enter your _password:" --hide-textbasitçe söyleyebilirsinzenity --password
user829755

7

Slm'nin çözümünü genişletmek istiyorum . Tüm bilgileri girmek ve tek seferde bir RemoteApp belirtmeme izin vermek için tek bir pencere istedim, bu yüzden zenity ile önerdiği şey üzerine inşa ettim ve bunu yarattım.

XFreeRDP İstemi

XFreeRDP-İstemi

Kod:

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

Özellikleri:

  • Yerleştirilmemişse varsayılan olarak 3389 numaralı bağlantı noktası
  • Doldurulmamışsa Uzak Uygulama varsayılan olarak ayarlanmamış

Planlanan:

  • Güvenlik Sertifikası Uyarısı
  • Kaynak Listesi sağlamak için RDWeb Sorgusu

Bunu şirketime ve VM Remote Uygulamalarına ve istemci Sunucularına bağlanmak için büyük başarı ile #! ++ dizüstü bilgisayarımda kullanıyorum. Senaryo yazımı konusunda deneyimli değilim, bu yüzden herhangi bir öneri veya geri bildirim varsa, bunları duymak isterim.


3

Tls güvenliğini belirtirseniz, uzak bilgisayar parola ister:

Xfreerdp --sec tls

Yeni parametre biçimi:

  /sec:tls

1

Boş bir parametre girmeniz gerekir (şifre değeri olmadan). Bunu dene:

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

Bu işe yaramazsa, bunu basit bash betiği ile başarabilirsiniz.

Bunu şu şekilde kaydet 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

Ardından dosyayı yürütülebilir yapın:

chmod +x rdp.sh

Başlat:

./rdp.sh

Bu, xfreerdp'in github sorunu hakkında daha ayrıntılı bir şekilde soruldu ve tartışıldı: https://github.com/FreeRDP/FreeRDP/issues/1358

Bh betiği fikri şu adresten alınmıştır: /programming/3980668/how-to-get-a-password-from-a-shell-script-without-echoing


Bu, şifreyi yapan kullanıcılara gösterir ps -ef.
reinierpost

1

Ben de aşağıdaki kabuk betiği kullanarak yad seviyorum.

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

İyi bir arayüz sağlar ve şifreyi gizler.

resim açıklamasını buraya girin


0

--From-stdin de kullanabilirsiniz. Ardından, sağlanmayan gerekli değerleri girmeniz istenir.

Jarretts çözümünü beğendim ama zenity ile değil, açılan kutuları yapmanıza izin veriyor:

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" "")
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.