Sie befinden sich hier: REX 18 / PSI 16 » REX3D » REX3D einrichten

REX3D einrichten

Dies ist eine alte Version des Dokuments!


REX3D mit OpenFOAM einrichten

Verwendung auf einem lokalen PC mit WSL

Verwendung eines Remote-Servers

Der Podman-Remote-Client ermöglicht es, von einem separaten Windows-Client mit einem Podman-Backend auf einem Linux-Server zu kommunizieren. Das Podman-Backend stellt dabei die für REX3D beziehungsweise PSI benötigte OpenFOAM-Umgebung bereit.

Aus Sicht von REX3D oder PSI verhält sich die entfernte Podman-Installation weitgehend wie eine lokale Installation.

Voraussetzungen

Die Verbindung basiert auf einem Client-Server-Modell.

Benötigt werden:

  • ein Linux-Server oder eine Linux-VM,
  • ein laufender SSH-Dienst auf dem Server,
  • Podman auf dem Server,
  • ein Windows-PC mit einer REX beziehungsweise PSI Version,
  • OpenSSH und ein Podman-Client auf dem Windows-PC.

Die Anleitung geht von Ubuntu 24.04 oder einer vergleichbaren Ubuntu-Version mit systemd aus. Podman ist in den offiziellen Ubuntu-Paketquellen verfügbar.

In den folgenden Befehlen müssen diese Platzhalter ersetzt werden:

  • <SERVER>: Hostname oder IP-Adresse des Servers
  • <ADMIN>: administrativer Benutzer auf dem Server
  • <e3d_usr>: unprivilegierter Benutzer für Podman und OpenFOAM
  • <ssh_podman_e3d_usr>: Dateiname des SSH-Schlüssels

1. Podman auf dem Server installieren

1.1 Auf dem Server anmelden

Auf dem Windows-PC in PowerShell:

ssh.exe <ADMIN>@<SERVER>

1.2 Benötigte Pakete installieren

Auf dem Server:

sudo apt-get update
 
sudo apt-get install -y 
podman 
uidmap 
slirp4netns 
fuse-overlayfs 
passt 

Installation prüfen:

podman --version

2. Podman-Benutzer einrichten

2.1 Benutzer ohne Passwortanmeldung anlegen

Als Administrator auf dem Server:

sudo adduser \
  --disabled-password \
  --gecos "" \
  <e3d_usr>

Der Benutzer erhält kein lokales Passwort. Die Anmeldung erfolgt später ausschließlich über einen SSH-Schlüssel.

2.2 Home-Dateisystem prüfen

findmnt -T /home/<e3d_usr>

Ein lokales Dateisystem wie ext4, xfs oder btrfs eignet sich für den Container-Storage.

Bei einem Homeverzeichnis auf NFS sollte für den Podman-Storage ein lokaler Pfad eingerichtet werden. NFS ist als Speicherort für den Rootless-Container-Storage in der Regel nicht geeignet.

2.3 User-systemd dauerhaft aktivieren

Damit die benutzerspezifischen systemd-Dienste auch ohne aktive SSH-Sitzung ausgeführt werden, muss für den Benutzer Linger aktiviert werden:

sudo loginctl enable-linger <e3d_usr>

Status prüfen:

loginctl show-user <e3d_usr> -p Linger

Erwartete Ausgabe:

Linger=yes

3. SSH-Schlüssel auf dem Windows-PC einrichten

Auf dem Windows-PC muss der OpenSSH-Client installiert sein.

3.1 OpenSSH prüfen

In PowerShell:

Get-Command ssh.exe
Get-Command ssh-keygen.exe
Get-Command scp.exe
 
ssh.exe -V 

Windows OpenSSH enthält unter anderem die Programme ssh, scp und ssh-keygen.

3.2 SSH-Schlüssel erzeugen

Pfad des neuen Schlüssels festlegen:

$KeyPath = "$env:USERPROFILE\.ssh\<ssh_podman_e3d_usr>"

Das Verzeichnis .ssh erstellen, falls es noch nicht vorhanden ist:

New-Item `
    -ItemType Directory `
    -Force `
    -Path "$env:USERPROFILE\.ssh" |
    Out-Null

Prüfen, ob unter dem gewählten Namen bereits ein Schlüssel vorhanden ist:

Test-Path $KeyPath
Test-Path "$KeyPath.pub"

Beide Befehle sollten False zurückgeben.

Falls bereits Dateien vorhanden sind, darf der folgende Befehl erst ausgeführt werden, nachdem geprüft wurde, ob diese Schlüssel noch benötigt werden.

SSH-Schlüssel erzeugen:

ssh-keygen.exe `
    -t ed25519 `
    -a 100 `
    -f $KeyPath `
    -C "<e3d_usr>@<SERVER>"

Dabei entstehen zwei Dateien:

<ssh_podman_e3d_usr>       Privater Schlüssel
<ssh_podman_e3d_usr>.pub   Öffentlicher Schlüssel

Der private Schlüssel darf den Windows-PC, auf dem REX3D beziehungsweise PSI installiert ist, nicht verlassen.

3.3 Öffentlichen Schlüssel auf den Server kopieren

In PowerShell:

scp.exe `
    "$KeyPath.pub" `
    "<ADMIN>@<SERVER>:/tmp/<e3d_usr>.pub"

Anschließend als Administrator am Server anmelden:

ssh.exe <ADMIN>@<SERVER>

3.4 Schlüssel für den Podman-Benutzer installieren

Auf dem Server zunächst das SSH-Verzeichnis erstellen:

sudo install \
  -d \
  -m 700 \
  -o <e3d_usr> \
  -g <e3d_usr> \
  /home/<e3d_usr>/.ssh

Den öffentlichen Schlüssel als authorized_keys installieren:

sudo install \
  -m 600 \
  -o <e3d_usr> \
  -g <e3d_usr> \
  /tmp/<e3d_usr>.pub \
  /home/<e3d_usr>/.ssh/authorized_keys

Die temporäre Datei löschen:

sudo rm -f /tmp/<e3d_usr>.pub

Berechtigungen prüfen:

sudo ls -ld /home/<e3d_usr>/.ssh
sudo ls -l /home/<e3d_usr>/.ssh/authorized_keys

3.5 SSH-Anmeldung als Podman-Benutzer testen

Auf dem Windows-PC:

ssh.exe `
    -i "$env:USERPROFILE\.ssh\<ssh_podman_e3d_usr>" `
    <e3d_usr>@<SERVER>

Nach der Anmeldung auf dem Server prüfen:

whoami
id
pwd

Erwartet werden unter anderem:

<e3d_usr>
/home/<e3d_usr>

Die Ausgabe von id muss die Benutzer- und Gruppeninformationen des Benutzers <e3d_usr> anzeigen.

Optional kann die SSH-Verbindung direkt vom Windows-PC aus geprüft werden:

ssh.exe `
    -i "$env:USERPROFILE\.ssh\<ssh_podman_e3d_usr>" `
    <e3d_usr>@<SERVER> `
    "whoami; podman --version"

4. Podman-Socket auf dem Server aktivieren

4.1 Podman als Benutzer testen

Als <e3d_usr> auf dem Server:

podman info

Der Befehl muss ohne sudo ausgeführt werden.

4.2 Podman-Socket aktivieren

Als <e3d_usr> auf dem Server:

systemctl --user enable --now podman.socket

Status prüfen:

systemctl --user status podman.socket --no-pager

4.3 Socket-Pfad prüfen

echo "$XDG_RUNTIME_DIR/podman/podman.sock"
ls -l "$XDG_RUNTIME_DIR/podman/podman.sock"

Der Rootless-Podman-Socket liegt standardmäßig unter:

/run/user/<UID>/podman/podman.sock

Die numerische UID des Benutzers kann mit folgendem Befehl ermittelt werden:

id -u

Podman verwendet für den API-Socket die systemd-Socket-Aktivierung. Zusammen mit loginctl enable-linger bleibt der Socket auch ohne aktive SSH-Anmeldung verfügbar.

5. Podman-Remote-Verbindung auf dem Windows-PC einrichten

Auf dem Windows-PC muss ein Podman-Client installiert sein.

5.1 Verbindung hinzufügen

In PowerShell:

podman.exe system connection add `
    rex3d-openfoam `
    --identity "$env:USERPROFILE\.ssh\<ssh_podman_e3d_usr>" `
    "ssh://<e3d_usr>@<SERVER>/run/user/<UID>/podman/podman.sock"

Dabei ist <UID> durch die numerische UID des Benutzers <e3d_usr> zu ersetzen.

Beispiel:

ssh://e3d@openfoam-server.example.org/run/user/1001/podman/podman.sock

5.2 Verbindung anzeigen

podman.exe system connection list

Die neue Verbindung sollte in der Liste erscheinen.

5.3 Verbindung testen

podman.exe `
    --connection rex3d-openfoam `
    info

Optional kann zusätzlich ein Testcontainer ausgeführt werden:

podman.exe `
    --connection rex3d-openfoam `
    run `
    --rm `
    docker.io/library/alpine:latest `
    uname -a

Der Container wird auf dem Linux-Server und nicht auf dem Windows-PC ausgeführt.

6. Podman-Verbindung in REX3D konfigurieren

In den REX3D-Optionen muss der Name der zuvor angelegten Podman-Verbindung eingetragen werden.

Bei Verwendung der Befehle aus dieser Anleitung lautet der Verbindungsname:

rex3d-openfoam

Die verfügbaren Verbindungen können jederzeit mit folgendem Befehl angezeigt werden:

podman.exe system connection list

Sicherheitshinweise

Der Podman-API-Socket erlaubt die vollständige Verwaltung aller Container, Images, Volumes und Pods des Benutzers <e3d_usr>.

Der Socket darf daher nicht über einen ungeschützten TCP-Port veröffentlicht werden. Der Zugriff über SSH auf den benutzereigenen Unix-Socket ist die bevorzugte Variante.

Der Benutzer <e3d_usr> sollte:

  • keine sudo-Rechte besitzen,
  • nicht Mitglied privilegierter Gruppen sein,
  • nur auf die benötigten Dateien und Verzeichnisse zugreifen können,
  • ausschließlich für REX3D, PSI und die zugehörigen OpenFOAM-Container verwendet werden,
  • einen eigenen SSH-Schlüssel verwenden,
  • keine privaten Schlüssel anderer Benutzer erhalten.

Der private SSH-Schlüssel auf dem Windows-PC sollte:

  • nur für diesen Verwendungszweck eingesetzt werden,
  • nicht per E-Mail oder über gemeinsame Netzlaufwerke verteilt werden,
  • durch geeignete Dateiberechtigungen geschützt werden,
  • bei Verlust oder bei einem Gerätewechsel aus authorized_keys entfernt werden.
rex3d/openfoamremote.1786086896.txt.gz · Zuletzt geändert: 2026/08/07 09:14