[[Vorlage(Getestet, focal)]]

{{{#!vorlage Wissen
[:Pakete_installieren:Installation von Programmen] 
[:Terminal:Ein Terminal öffnen] 
[:Programme_starten: Ein Programm starten] 
[:Paketinstallation_DEB: Ein einzelnes Paket installieren]
[:Editor:Einen Editor bedienen]
}}}

[[Inhaltsverzeichnis(1)]]
[[Bild(CitrixWorkspaceAppLogo.png, 64, align=left)]]
Bekannt geworden ist die Firma [wikipedia:Citrix_Systems:Citrix] in erster Linie mit Applikations- und Terminalserver-Anwendungen. Das hat zur Folge, dass mittlerweile oftmals der Name selbst als Synonym für eine solche Anwendung verwendet wird.

Der aktuelle Client zur Nutzung von Citrix-Serverdiensten nennt sich "Citrix Workspace App" (früher "Citrix Receiver" oder "Citrix ICA Client"). Die Software kann auf so gut wie allen gängigen Endgeräten (Linux, Windows, macOS, iPhone, iPad, Android etc.) verwendet werden, um bereitgestellte Anwendungen und ganze Desktops "on demand" zu nutzen. Dabei spielen Art und Ort des Endgerätes keine Rolle, was den Verwaltungsaufwand bei mobilen Rechnern in der Regel deutlich minimiert.

Unter Linux gibt es mit dem [:Archiv/LTSP: Linux Terminal Server Project] (LTSP) eine konzeptionell vergleichbare Alternative, allerdings nicht für Windows-Programme. Außerdem erlauben auch [:X2Go:] und [:VNC:] einen Zugriff auf entfernte Rechner inkl. grafischer Oberfläche. Man spricht in diesem Zusammenhang auch von einem [wikipedia:Terminalserver:] bzw. -Client.

= Installation =
Es wird das 64-bit-Debian-Paket von der [https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html "Citrix Workspace App for Linux"-Downloadsite] {en} benötigt. Man findet es dort unter ''"Available Downloads"'' -> ''"Debian Packages"'' -> ''"Full Packages"'' -> ''"Citrix Workspace app for Linux (x86_64)"''. Dieses muss dann manuell installiert werden[4].
{{{#!vorlage Warnung
Der ICA-Client aus dem Debian-Paket benötigt das Paket libidn11. Das ist in Ubuntu 22.04 nicht vorhanden.
}}}
[[Vorlage(Fremd, Paket, "")]]

= Konfiguration =
Wenn es sich nicht um eine Erstinstallation handelt, sondern die Citrix Workspace App oder der ältere Citrix Receiver schon benutzt worden ist, ist es empfehlenswert, vor der Nutzung den Ordner mit den Einstellungen '''~/.ICAClient/''' im [:Homeverzeichnis:]  umzubenennen:

{{{#!vorlage Befehl
mv ~/.ICAClient ~/.ICAClient_save
}}}
Ansonsten sind unerwartete Effekte möglich, z.B. dass das Citrix-Fenster den gesamten Bildschirm nahtlos erobert (Vollbild, seamless). Das Verzeichnis '''~/.ICAClient''' wird beim ersten Start der Citrix Workspace App neu angelegt.

Ob die Citrix Workspace App jetzt startklar ist oder noch Dinge wie Adresse, User und Kennwort einzutragen sind, erfährt man beim zuständigen Administrator der Citrix-Umgebung. Wenn noch Daten eingetragen werden müssen, startet man die Workspace App über das Anwendungsmenü unter dem Namen "Citrix Workspace" oder mit folgendem Befehl:

{{{#!vorlage Befehl
/opt/Citrix/ICAClient/selfservice --icaroot /opt/Citrix/ICAClient
}}}

Der "Config Manager" kann über die gestartete Citrix Workspace App -> ''"<Username>"'' -> ''"Einstellungen..."'' oder folgenden Befehl aufgerufen werden:

{{{#!vorlage Befehl
/opt/Citrix/ICAClient/util/configmgr
}}}
Um den Zugriff auf Dateien des lokalen Ubuntu-Rechners über ein Freigabelaufwerk in einer Windows-Remote-Sitzung zu ermöglichen, nutzt man die Registerkarte ''"Dateizugriff"''.

= Verwendung =
Bei Ubuntu-Varianten mit einem Anwendungsmenü kann man den Client über ''"Internet -> Citrix Workspace"'' starten. Das Programm kann alternativ auch über ein Terminal [2] gestartet werden:

{{{#!vorlage Befehl
/opt/Citrix/ICAClient/selfservice --icaroot /opt/Citrix/ICAClient
}}}

== Start über Webbrowser ==
Wenn der Zugriff auf einen Citrix-Server über eine Weboberfläche erfolgt, kann der bereitgestellte Link angeklickt werden. Der Browser öffnet automatisch die Citrix Workspace App und die Verbindung wird aufgebaut.

== Hinzufügen einer Verbindung ==
Ansonsten im Menü ''"Einstellungen"'' -> ''"Konten"'' -> ''"Hinzufügen"'' wählen. Hier kann man nun die Verbindungsart einstellen. Die Werte können beim Administrator des Zielsystems erfragt werden.

= Werkzeuge =
== Workspace - Einstellungen ==
Allgemeine Einstellungen wie z.B. Verbindungsverhalten, Dateizugriffe usw. können über das mitgelieferte Konfigurationswerkzeug '''configmgr''' eingestellt werden.

{{{#!vorlage Befehl
/opt/Citrix/ICAClient/util/configmgr
}}}

Falls man einen Programmstarter für dieses Programm benötigt, muss eine [:.desktop-Dateien:.desktop-Datei] mit dem Namen '''/usr/share/applications/icaconfigmgr.desktop''' und folgendem Inhalt angelegt werden:

{{{
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=Citrix Workspace - Einstellungen
Categories=Application;Network;X-Red-Hat-Base;X-SuSE-Core-Internet;
Icon=/opt/Citrix/ICAClient/icons/manager.png
TryExec=/opt/Citrix/ICAClient/util/configmgr
Exec=/opt/Citrix/ICAClient/util/configmgr --icaroot /opt/Citrix/ICAClient
}}}

== Connection Center ==
Es gibt ein weiteres Werkzeug, welches aktuelle Verbindungen anzeigt. Diese können dann abgemeldet bzw. getrennt werden.

{{{#!vorlage Befehl
/opt/Citrix/ICAClient/util/conncenter
}}}
Falls man einen Programmstarter für dieses Werkzeug benötigt, muss eine .desktop-Datei mit dem Namen '''/usr/share/applications/icaconncenter.desktop''' und dem folgenden Inhalt angelegt werden:

{{{
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=Citrix Connection Center
Categories=Application;Network;X-Red-Hat-Base;X-SuSE-Core-Internet;
Icon=/opt/Citrix/ICAClient/icons/manager.png
TryExec=/opt/Citrix/ICAClient/util/conncenter
Exec=/opt/Citrix/ICAClient/util/conncenter --icaroot /opt/Citrix/ICAClient
}}}

== ICA Browser ==
Ein kommandozeilenbasierter ICA-Browser.

{{{#!vorlage Befehl
/opt/Citrix/ICAClient/util/pnabrowse
}}} 
{{{
Command-line ICA Browser

Copyright 1998-2020 Citrix Systems, Inc.
All rights reserved.

Usage: pnabrowse [ Options ] [ Server | PNA URL ]
Options:
   -S      List available ICA servers
   -A      List available ICA published applications
   -c      create ICA files
   -d      specify XDG desktop file (with -L only).
   -e      show error numbers
   -f      include application folders
   -i      include application icons (32 pixels wide and 4 bits per pixel)
   -iWxB   include application icons W pixels wide and B bits per pixel
   -k      use Kerberos authentication
   -r      application icons as raw data
   -m      print a series of miscellaneous options:
            'Publisher name' 'Video Type' 'Sound Type'
            'AppInStartMenu' 'AppOnDesktop'
            'AppIsDeskTop' 'AppIsDisabled'
            'Window Type' 'Window Scale' 'Display Name'
           Only items 1 and 4-7 are available with -E.
   -M      like -m but takes a numeric (1-1023) argument
           used as a bitmap to select individual columns.
           Add 1024 to generate 'desktop' files with -E
   -E      enumerate published resources
   -L      launch a connection to a published resource
   -U      specify username
   -P      specify password
   -N      specify new password
   -D      specify domain
   -Wr     reconnect disconnected applications on this Web Interface
   -WR     reconnect active and disconnected applications on this Web Interface
   -WD     disconnect applications from this Web Interface
   -WT     terminate applications from this Web Interface
   -u      specify proxy username
   -p      specify proxy password
   -q      Do not display error messages
   -x      Display child exit status
   -V      Display version details
   -h      Display this help screen
   -?      Display this help screen
}}}

== Store Browser ==
Ein kommandozeilenbasierter Store-Browser.

{{{#!vorlage Befehl
/opt/Citrix/ICAClient/util/storebrowse
}}} 
{{{
Usage: /opt/Citrix/ICAClient/util/storebrowse [options] store
    -?,  --help                                 this message
    -M,  --details xxx                          details of resources to print
    -i,  --icons WxB|best                       fetch icons W pixels wide and B bpp OR
                                                best sized icon
    -L,  --launch <resource>                    launch an instance of this resource
    -q,  --quicklaunch <resource>               launch using direct URL (StoreFront servers only)
    -E,  --enumerate                            enumerate all resources available
    -S,  --subscribed                           list all subscribed resources
    -F,  --fileparam                            Launch this file using subscribed resource
    -v,  --version                              version number of this command
    -r,  --icaroot <directory>                  the root of the receiver installation
    -s,  --subscribe <resource>                 subscribe to this resource
    -u,  --unsubscribe <resource>               unsubscribe from this resource
    -Wr, --reconnect r                          reconnect to disconnected sessions
    -WR, --reconnect R                          reconnect to active and disconnected sessions
    -WD, --disconnect                           disconnect from all sessions
    -WT, --terminate                            terminate all sessions
    -e,  --listerrorcodes                       list error codes
    -U,  --username <user_name>                 user name
    -P,  --password <password>                  password
    -D,  --domain <domain>                      domain
    -l,  --liststores                           list all stores and their configuration
    -a,  --addstore <store URL>                 add the store at the given URL
    -C,  --addcr <cr file>                      add the store for the given CR file
    -g,  --storegateway <gateway>               changes the default gateway to the given gateway
    -d,  --deletestore <store URL>              removes this store
    -c,  --configselfservice <entry[=value]>    gets or sets the configuration entries
    -K,  --killdaemon                           closes storebrowse daemon (also clears PNA and SF credentials)
    -n,  --nosingleshot                         always daemonise
}}}
= Deinstallation =
Bei Bedarf eine Sicherung der Citrix-Einstellungen erstellen:

{{{#!vorlage Befehl
cd $HOME
mv $HOME/.ICAClient $HOME/.ICAClient_save 
}}}
Alternativ löschen:

{{{#!vorlage Befehl
rm -rf $HOME/.ICAClient 
}}}
Das Citrix-Paket deinstallieren:

{{{#!vorlage Befehl
sudo dpkg -P icaclient
}}}
Ggf. ist noch ein manuelles Löschen des Verzeichnisses '''/etc/icaclient''' nötig:

{{{#!vorlage Befehl
rm -rf /etc/icaclient
}}}

= Problembehebung =

== Zwischenablage ==
In einer XenApp-6.5-Umgebung (über XenApp-Webinterface) funktioniert Kopieren und Einfügen nur von der Citrix- in die lokale Sitzung, nicht in die Gegenrichtung.

== SSL-Fehler ==
Standardmäßig vertraut der Citrix Receiver nur sehr wenigen (Root-CA-)Zertifikaten. Infolgedessen werden Verbindungen zu vielen Citrix-Servern mit einem SSL-Fehler beendet. Beim Öffnen einer Citrix-Anwendung kommt eine Meldung wie:

>"Sie vertrauen “XY”, dem Herausgeber des Sicherheitszertifikats des Servers, nicht."
oder
>"Das Konto kann nicht mit dieser Serveradresse hinzugefügt werden. Überprüfen Sie die Eingabe. Eine SSL-Verbindung mit dem Server konnte nicht hergestellt werden, da das Zertifikat des Servers nicht vertrauenswürdig ist."

Es müssen weitere SSL-Root-Zertifikate installiert werden. Hierfür gibt es drei Möglichkeiten:

 1. Ein einzelnes SSL-Zertifikat importieren: Um beispielsweise das Root-Zertifikat '''Root-R1.crt''' des Anbieters [https://support.globalsign.com/customer/portal/articles/1426602-globalsign-root-certificates GlobalSign] {en} {dl} hinzuzufügen, lädt man dieses von der angegebenen Seite herunter und kopiert es mit Root-Rechten in den Ordner '''/opt/Citrix/ICAClient/keystore/cacerts/'''.
 1. Alle Mozilla-Zertifikate importieren: Das Paket '''ca-certificates''' (bei Ubuntu meist schon vorinstalliert) bietet im Ordner '''/usr/share/ca-certificates/mozilla/''' zusätzliche CA-Zertifikate, die der Citrix Workspace App zugänglich gemacht werden können, um den SSL-Fehler zu vermeiden.
  * Folgendes Beispiel verknüpft sämtliche Zertifikate aus dem Mozilla-Ordner in den Ordner des ICA-Clients (Citrix Workspace App): [[Vorlage( Befehl, "sudo ln -s /usr/share/ca-certificates/mozilla/* /opt/Citrix/ICAClient/keystore/cacerts/" ) ]]
  * Alternativ können die Zertifikate auch kopiert werden.
 1. Andere Zertifikate importieren: Die dritte Möglichkeit ist, bereits auf dem Rechner vorhandene Zertifikate zu verknüpfen bzw. zu kopieren.
  * Beispiel: [[Vorlage( Befehl, "sudo ln -s /etc/ssl/certs/DigiCert* /opt/Citrix/ICAClient/keystore/cacerts/" ) ]]
  * Manchmal kann statt des vorstehenden Befehle die folgende Variante erfolgreicher wirken, weil diese auch vorhandene alte Versionen löscht: [[Vorlage( Befehl, "sudo ln -sfn /etc/ssl/certs/* /opt/Citrix/ICAClient/keystore/cacerts/" ) ]]

Teils reicht es allerdings nicht, die Zerifikate nur zu verknüpfen/zu kopieren, sondern es muss ein CTX_Rehash ausgeführt werden:

{{{#!vorlage Befehl
cd /opt/Citrix/ICAClient/util
sudo ./ctx_rehash
}}}

== Probleme mit seamless-Fenstern ==
Auf der Gnome-Shell kommt es mit seamless-Fenstern häufiger zu Problemen. Abhilfe kann durch Nutzen des nativen Fenstermanagers geschaffen werden. Hierzu müssen einige Einstellungen in der Datei '''~/.ICAClient/All_Regions.ini''' vorgenommen werden. 

Dazu öffnet man die Datei mit einem Editor[5] und editiert die Abschnitte wie im folgenden gezeigt. Als Auflösung kann auch eine andere Größe genutzt werden:

"Force no Seamless" erzwingen:

{{{
[Virtual Channels\Seamless Windows]
TWIMode=0
}}}

Fenstergröße anpassen:

{{{
[Virtual Channels\Thinwire Graphics]
DesiredColor=8
ApproximateColors=*
DesiredHRES=1024
DesiredVRES=768
ScreenPercent=*
UseFullScreen=false
TWIFullScreenMode=false
NoWindowManager=false
}}}

== Popup-Blocker ==
Ein generelles Problem bei der praktischen Nutzung sind u.U. automatische Popup-Blocker. Diese sind dann vorübergehend abzuschalten bzw. die entsprechenden Domains zuzulassen.

== citrixlog ==

Mit der Installation der Citrix Workspace app wird ein Benutzer namens citrixlog mit leerem Paßwort und User-Rechten erstellt, der die Protokollierungsfunktionalität ermöglicht. Er kann entfernt werden, CWA-Protokollierungen sind dann nicht mehr gegeben.

= Links =
 * Herstellerseiten: [http://www.citrix.de/ citrix.de] {de} und [http://www.citrix.com/ citrix.com] {en} 
 * [https://docs.citrix.com/en-us/citrix-workspace-app-for-linux.html Citrix Product Documentation] {en} - Offizielle Dokumentation zur Citrix Workspace App
 * [https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html Downloadportal Citrix Workspace App] {en} - Citrix Workspace App, aktuelle Version
 * [ubuntu_doc:community/CitrixICAClientHowTo:Citrix ICA Client HowTo] {en} - Citrix Receiver 13.1
 * [ubuntu_doc:community/CitrixICAClientHowToOlderVersions:Citrix ICA Client HowTo Older Versions] {en} - Citrix Receiver 13.0 oder älter

#tag: Fernwartung, Remotedesktop, Terminalserver, unfreie Software