Andrés Blog

Krams. Und so.

Mai 13, 2016

Screenshot'n'Upload

Dieses kleine Script startet scrot -s, um einen Screenshot von einem Bereich des Monitors anzufertigen. Anschließend wird das Bild per ssh auf den eigenen Server hochgeladen, wobei der Dateiname durch den eigenen SHA256-Hash ersetzt wird. Die URL, unter der das Bild nun abrufbar ist, wird in die Zwischenablage geschrieben und kann schnell geteilt werden.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/env bash

# bash strict mode
set -euo pipefail
IFS=$'\n\t'

# Ending of temporary filename decides filetype
filename=$(mktemp tmp.XXXXXXXXXX.png)
ext=${filename##*.}

function finish {
    rm -f "$filename"
    unset IFS
}
trap finish EXIT

sleep 0.1 # scrot is not able to grab the pointer without this sleep
notify-send --urgency=low "Screenshot ready" "Select area to screenshot and upload."
scrot -s ${filename}
shasum=$(sha256sum ${filename} | awk '{print $1}')

rsync --chmod=g-rwx,o=r "${filename}" "wgmd:public_html/share/${shasum}.${ext}"
url="https://share.wgmd.de/${shasum}.${ext}"

notify-send --urgency=low "Screenshot uploaded" "Upload successful.\nUse clipboard to access URL."
echo ${url} | xclip -selection clipboard

ctrlmedia.sh

Um den von mir genutzten Mediaplayer bequem bedienen zu können, benutze ich verschiedene Tastenkombinationen (und, falls vorhanden, die Mediatasten) für Play/Pause/Stop und Nächstes/Vorheriges. Wenn man jedoch den Player wechselt oder mehrere Programme für verschiedene Formate (z.B. Audio und Video) benutzt, so ist das umständlich. Zur Zeit benutze ich cmus, um Musik abzuspielen, und mpv, um Filme, Serien, Musik- oder Youtubevideos zu gucken. Diese Programme laufen öfters im Hintergrund und es lässt sich immer nur eines davon über die Tastenkombinationen steuern. Man hat die Wahl, ob man das Fenster des anderen Programmes jedes mal sucht oder ob man einen weiteren Satz an Tasten für das zweite Programm festlegt.

Oder aber, man schreibt sich ein kleines Wrapperscript! Dieses kann verschiedene Player gleichzeitig unterstützen und es kann festgelegt werden, welcher Player wann kontrolliert werden soll. Für meine bisherigen Anwendungsfälle lässt sich das super umsetzen!

  1. Ich kann mit den gleichen Tastenkombinationen cmus und mpv kontrollieren.
  2. Falls beide Programme gestartet wurden, so wird mpv gesteuert.
  3. Falls keines lokal läuft, wird ein anderer Rechner im Netzwerk kontrolliert.

cmus läuft meistens im Hintergrund, auch wenn ich gerade keine Musik höre. mpv wird immer zum Abspielen einer (oder mehrerer) Dateien gestartet und beendet sich nach erfolgter Wiedergabe. Eine laufende Instanz deutet also auf aktive Benutzung hin und soll in dem Fall gesteuert werden.

Wenn ich mit meinem Laptop auf dem Bett liege und Musik hören möchte - dann benutze ich cmus auf meinem Rechner. Die Lautsprecher sind denen des Laptops weit überlegen und fangen nicht schon knapp über Flüsterlautstärke an zu knarzen. Mit dem Wrapperscript kann ich cmus über ssh steuern, genau wie ich den lokalen cmus steuern würde.

Wenn man cmus über ssh eine höhere Priorität als der lokalen Instanz einräumt, dann kann dies zu spürbaren Verzögerungen führen. Um diese zu reduzieren, wird zunächst mit einem Ping überprüft, ob der Host erreichbar ist. Dazu dient die Funktion hostonline. Das Tool ping aus den iputils wartet mindestens eine Sekunde auf einen Timeout. Das Tool fping ermöglicht es, den Timeout auf 50ms zu reduzieren. Fürs lokale Netzwerk reicht das aus und die Verzögerung ist kaum mehr zu spüren.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/usr/bin/env bash

# "bash strict mode" ohne -e
set -uo pipefail
IFS=$'\n\t'

if [ $# -lt 1 ]; then
    echo "Usage: $0 <play|pause|prev|next>"
    echo "This script looks for running media players and controls them."
    exit 1
fi

case "$1" in
    play|pause|stop|next|prev)
        cmd=$1
        ;;

    *)
        echo "Command not found."
        exit 1
esac

function hostonline {
    # fping can set smaller timeouts (50ms vs 1s)
    command -v fping > /dev/null
    if [ $? -eq 0 ]; then
        local pingcmd="fping -q $1 -t50"
    else
        local pingcmd="ping -q $1 -c 1 -W 1"
    fi

    $pingcmd > /dev/null
    if [ $? -eq 0 ]; then
        echo 1
    else
        echo 0
    fi
}

function media-mpv {
    mpvid=$(xdotool search --class mpv)
    if [ $? -eq 0 ]; then
        case "$1" in
            play|pause)
                xdotool key --window ${mpvid} space > /dev/null
                ;;
            stop)
                xdotool key --window ${mpvid} q > /dev/null
                ;;
            prev)
                xdotool type --window ${mpvid} '<' > /dev/null
                ;;
            next)
                xdotool type --window ${mpvid} '>' > /dev/null
                ;;

            *)
                echo "Command not found."
                exit 1
        esac
        exit 0
    fi
}

function media-cmus {
    if [ $(pidof cmus) ]; then
        case "$1" in
            play|pause)
                cmus-remote -u
                ;;
            stop)
                cmus-remote -s
                ;;
            prev)
                cmus-remote -r
                ;;
            next)
                cmus-remote -n
                ;;

            *)
                echo "Command not found."
                exit 1
        esac
        exit 0
    fi
}

function media-cmus-remote {
    if [ $HOSTNAME != $2 ]; then
        if [ $(ssh $2 pidof cmus) ]; then
            case "$1" in
                play|pause)
                    ssh $2 cmus-remote -u
                    ;;
                stop)
                    ssh $2 cmus-remote -s
                    ;;
                prev)
                    ssh $2 cmus-remote -r
                    ;;
                next)
                    ssh $2 cmus-remote -n
                    ;;

                *)
                    echo "Command not found."
                    exit 1
            esac
            exit 0
        fi
    fi
}

# Sort this list to change priorities
media-mpv $1
if [ $(hostonline computername) -eq 1 ]; then
    media-cmus-remote $1 computername
fi
media-cmus $1

echo "No supported media player running."
exit 1

Jetzt ärgere ich mich nur noch darüber, dass ich nicht wesentlich eher auf diese Idee gekommen bin! ;)

Update: Mir ist ein Fehler unterlaufen, da der "bash strict mode" beim prüfen auf laufende Programme das Script abbricht. set -e lässt das Bashscript abbrechen, sobald ein aufgerufenes Programm einen Fehlercode != 0 zurückgibt. Da hier keine kritischen Befehle aufgerufen werden, entschärfe ich hier den "bash strict mode" erstmal.

Mär 22, 2016

Shutdownscript Nr. 2

Eine neue Iteration des Shutdownscripts, welches die Shell blockiert, bis kein Traffic mehr fliesst. Diesmal sind alle Einstellmöglichkeiten rausgeworfen worden, da diese zum Teil hinderlich oder unnötig waren. So wird jetzt der Traffic aller Netzwerkschnittstellen summiert und ein fester Schwellwert von 1kb/s ist zu unterschreiten als Mittelwert über 5 Sekunden. Auch ist der Befehl zum Shutdown verschwunden. Einfach das Script mit

scriptname && systemctl suspend

aufrufen, um den gewünschten Effekt zu erzielen ;)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash

# "bash strict mode"
set -euo pipefail
IFS=$'\n\t'

verbose=1

function networkidle() {
    local traffic_last=$(awk '/:/ {if ($1 != "lo:") {SUM += $2}} END {print SUM}' /proc/net/dev)
    while true; do
        sleep 5
        local traffic_now=$(awk '/:/ {if ($1 != "lo:") {SUM += $2}} END {print SUM}' /proc/net/dev)
        local traffic_diff=$(( (${traffic_now} - ${traffic_last}) / 1024 / 5 ))
        local traffic_last=${traffic_now}
        if [[ ${verbose} -ne 0 ]]; then echo "${traffic_diff} kb/s"; fi
        if [[ ${traffic_diff} -le 1 ]]; then
            if [[ ${verbose} -ne 0 ]]; then echo "Traffic below 1 kb/s."; fi
            return
        fi
    done
}

networkidle

Den inoffiziellen "bash strict mode" habe ich übrigens im Blog von Aaron Maxwell gefunden. Werde ich in Zukunft wohl öfters in meine Scripte einbinden.

Dez 28, 2015

Das System automatisch herunterfahren, sobald alle Downloads abgeschlossen sind

Ich bin über die Feiertage und den Jahreswechsel bei meinen Eltern. Dort ist die Internetleitung nicht so breitbandig, wie ich es zuhause gewohnt bin. Da gerade der 32c3 läuft und ich mir ein paar der Talks gerne ansehen möchte, stößt die Leitung bei den Downloads der Aufzeichnungen schnell an ihre Grenze - zumal ich nicht der alleinige Nutzer bin. Daher habe ich ein kleines Script geschrieben, welches den Rechner nach (hoffentlich erfolgreichem) Download automatisch in den Ruhezustand schickt. So kann der Download über Nacht laufen und der Rechner ist nicht länger an, als benötigt. Dazu wird alle paar Sekunden der Traffic einer Netzwerkschnittstelle ausgelesen und wenn dieser unter einen Schwellwert sinkt, dann wird ein definierter Befehl ausgeführt. So muss man nicht von vornherein die Downloads genau planen, sondern legt einfach los ;)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash

function networkidle() {
    local device=enp4s0
    local traffic_last=$(grep $device /proc/net/dev | awk '{print $2}')
    local framesize=5
    local traffic_min=20
    local shutdowncommand="systemctl suspend"

    while true; do
        sleep $framesize
        traffic_now=$(grep $device /proc/net/dev | awk '{print $2}')
        traffic_diff=$(expr ${traffic_now} - ${traffic_last})
        traffic_diff=$(expr ${traffic_diff} / 1024)
        traffic_persec=$(expr ${traffic_diff} / $framesize)
        traffic_last=$traffic_now
        echo $traffic_diff kb in $framesize seconds ~ $traffic_persec kb/s
        if [[ $traffic_persec -lt $traffic_min ]];
        then
            echo "Traffic below ${traffic_min} kb/s. Suspending!"
            $shutdowncommand
            return
        fi
    done
}

networkidle

Jul 16, 2013

Google Maps API auf gerootetem Android installieren

Mal wieder ein neuer Eintrag! Wieder einmal hatte ich ein einfach zu lösendes Problem, wobei die Lösung wiederum gewohnt schwer zu finden war. Zumindest, wenn es mal wieder schnell gehen soll ;)

Folgende Situation: Ich habe mein Android Smartphone (Samsung Galaxy Ace) bereits vor einiger Zeit gerootet, wollte nun jedoch mal den CyanogenMod ausprobieren. Kein Problem soweit, schnell ein Backup der bisherigen ROM gemacht (Stocklite v8) und CM7.2 nightly aufgespielt. Ersteindruck: Flott unterwegs und schön viel RAM frei :)

CyanogenMod hat von Haus aus keine Google Apps installiert, was mir zunächst sehr gut gefällt. Allerdings sind damit auch einige Einschränkungen verbunden. So können nicht wie üblich Apps einfach im Play Store gesucht und geladen werden - dieser ist ja nicht vorhanden. Abhilfe können dort proprietäre Angebote, wie AndroidPit, oder Open Source Angebote, wie F-Droid, bieten.

Zwei Apps jedoch, welche ich gerne wieder mein Eigen nennen würde, ließen sich nicht auf diese Weise installieren. Zum einen möchte ich die App der Bahn nutzen, zum anderen Öffi. Bei beiden Apps schlug die Installation zunächst fehl und es wurde keine genauere Fehlerbeschreibung seitens Android geliefert.

Erst der Versuch, eine der Apps über ADB zu installieren, meldete den Fehler [INSTALL_FAILED_MISSING_SHARED_LIBRARY]. Ein Blick in logcat konnte das genaue Problem aufzeigen: ERROR/PackageManager(58): Package xyz requires unavailable shared library com.google.android.maps; failing! Beide Apps benötigen die Google Maps API! Öffi gibt es zwar auch ohne Goole Maps API-Abhängigkeit zum Download, aber die Bahn-App nicht.

Mein erster Gedanke: Okay, dann fehlt sicherlich Google Maps, das sollte auch ohne Play Store etc. funktionieren. Also habe ich mir eine .apk für Google Maps besorgt (Version 6, für Version 7 ist mein CM7.2 dann doch zu alt). Die Installation hat funktioniert; Google Maps startet und funktioniert. Aber die gwünschten Apps ließen sich weiterhin nicht Installieren - gleiche Fehlermeldung.

Nach kurzer Recherche stand fest: Die API ist Bestandteil der GApps. Diese habe ich (nach einem Backup) dann doch installiert und wurde (nach Android Startup/Einrichtungsassistenten) direkt darauf hingewiesen, dass nun kaum mehr Speicherplatz vorhanden ist - na klasse. Aber immerhin ließen sich die Apps jetzt installieren. Aber so ist das ja kein Zustand, daher das Backup ohne GApps wieder eingespielt - das muss doch auch anders zu lösen sein!

Das Durchsuchen der GApps*.zip zeigt in system/framework und in system/etc/permissions 2 Dateien mit dem Namen com.google.android.maps.(jar|xml). Vielleicht reichen diese Dateien aus? Also habe ich diese Dateien in den jeweiligen Pfad auf meinem Smartphone kopiert und nach einem Reboot ließen sich die beiden Apps dann auch starten und (bislang ohne Probleme) benutzen. Es hätte so viel einfacher sein können, hätte es auch von der Bahn eine Alternative ohne Abhängigkeit gegeben. Oder würde Android direkt beim Installieren sagen, was ihm fehlt. Oder hätte ich direkt gewusst/gefunden, wie man nur die Google Maps API nachinstalliert.

Wie auch immer, es ist geschafft. Und ich hoffe, ich konnte mit diesem Eintrag vielleicht noch jemandem beim gleichen Problem etwas (Such-)Arbeit abnehmen :)

TL;DR:

  • GApps runterladen

  • Entpacken
  • per adb shell als root /system mit Schreibrechten neu mounten: mount -o remount,rw /system
  • adb push gapps-jb-20130812-signed/system/framework/com.google.android.maps.jar /system/framework/com.google.android.maps.jar
  • adb push gapps-jb-20130812-signed/system/etc/permissions/com.google.android.maps.xml /system/etc/permissions/com.google.android.maps.xml
  • Reboot!
  • Fertig.

Feb 02, 2012

IMAP über SSH (in claws-mail)

Ich hab mal wieder unverhältnismäßig Lange nach einer Lösung für ein eigentlich simples Problem gesucht. Und diese Lösung möchte ich hier verewigen, um anderen Suchenden (und natürlich meinem zukünftigen Ich) Zeit bei der Suche zu sparen.

TL;DR: "Use command to communicate with server" -> ssh -q ssh.server.com nc localhost 143

Zunächst möchte ich mich bei meinem aktuellen Mail-Setup bedanken, welches dieses Problem überhaupt erst möglich gemacht hat. ;) Das Setup besteht primär aus einem IMAP-Server, welcher via fetchmail mit den Mails verschiedener Konten versorgt wird. Diese werden vorher durch Spamassassin gejagd und via Sieve grob sortiert (nur grob, da eine feine Sortierung Zeit kostet, und das Suchen erschwert). Um von überall Zugriff auf meine Mails zu haben, habe ich mich für das Webmailfrontend Roundcube entschieden. Roundcube ermöglicht es außerdem, Mails über einen SMTP-Server zu verschicken. So kann ich nicht nur problemlos von einem Server mit dynamischer IP-Adresse aus Mails verschicken, sondern hab sogar meine Mailadresse als Absender ;) Genauer gesagt eine meiner Mailadressen. Für den meisten Mailverkehr nutze ich zwar ohnehin die Mailadresse der Uni, dennoch verspüre mittlerweile das Bedürfnis, bei der Beantwortung diverser Mails mit der entsprechenden Adresse zu antworten. Und genau dort lag mein Problem.

Nun gibt es verschiedene Wege, dieses Problem anzugehen.

  • Roundcubes Config jedes mal ändern
  • Webmailfrontends der anderen Anbieter
  • Roundcube Plugin schreiben
  • claws-mail mit SMTP only Konten

Das Ändern der Konfiguration vorm Versenden scheidet offensichtlich aus.

Die Webmailfrontends der anderen Konten nutzen ist aus meiner Sicht ebenfalls umständlich. Außerdem löscht meine fetchmail-Konfiguration alle Mails nach dem Abrufen, so dass IDs beim Reply verloren gehen würden.

Ein Plugin für Roundcube habe ich sogar mal geschrieben, welches mir die Einstellung eines SMTP-Servers für jede Identität innerhalb eines Roundcube-Logins (man kann dort beliebig viele angeben) ermöglicht. Leider ist dieses Plugin mehr ein sehr fieser Hack gewesen als ein sauberes Plugin. Daher nutze ich das nicht mehr. (Ich glaube, die Sourcen hab ich auch verlegt. Sollte ich diese wiederfinden und dran denken, werde ich die hier nachträglich verlinken...) Man könnte nun sicherlich ein neues Plugin schreiben, welches diese Funktionalität bietet und schöner geschrieben ist, jedoch fehlts da gerade an Motivation.

Und als letzte Lösung - gleichzeitig ein Schritt in Richtung des ursprünglich angekündigten Problems - bietet die Nutzung von einem Mail-Client wie z.B. claws-mail, welcher Mail-Konten als SMTP only unterstützt. Somit rufe ich die Mails über IMAP ab und habe pro gewünschter, ausgehender Mailadresse ein SMTP only Konto.

claws-mail lässt sich zwar nicht wie ein Webfrontend von überall aus aufrufen, dieses Manko nehme ich aber in Kauf, da ich zum einen eh meistens mein Laptop griffbereit habe und andererseits das Webfrontend mit meiner UniMail als Absender für den meisten Mailverkehr weiterhin erreichbar ist. Ein anderes, größeres Problem sehe ich im externen Zugriff auf IMAP, denn irgendwie muss claws-mail ja auch an die Daten kommen. Auch von unterwegs. Laut der claws-mail features Seite unterstützt der Client von Haus aus IMAP over SSH Tunnel. Super! Damit muss ich keinen zusätzlichen Port öffnen. Und verschlüsselt wird auch direkt! Nur wo zum Henker findet sich diese Option? Und warum wird das Feature weder im Manual noch im Wiki erwähnt?

Daher hier für Mitleidende die Lösung, die ich zur Zeit verwende: Unter den Account-Preferences in claws-mail findet sich unter Advanced ein Punkt "Use command to communicate with server". Hier trägt man einen ssh-Befehl wie z.B. dem folgenden ein: ssh -q ssh.server.com nc localhost 143 Dazu sollte der IMAP-Server natürlich auch unter localhost auf Port 143 erreichbar sein. Außerdem sollte die Verbindung zum Server ohne Passwortabfrage funktionieren (wobei ich es nicht mit probiert habe - gehe aber nicht davon aus, dass claws-mail dann nach dem Passwort fragt). Das kann man mithilfe von SSH-Keys erreichen. Sofern man dem Key ein Passwort gibt, kann man diesen per ssh-agent bereitstellen, um das Passwort nicht für jede Verbindung eingeben zu müssen.

Ich hoffe, das ich dem ein oder anderen hiermit die Suche nach der "IMAP over SSH tunnel"-Option vereinfache und vielleicht sucht ja auch jemand nach ein paar Anregungen für ein eigenes Mail-Setup ;)

posted at 02:56  ·   ·  imap  mail  server  ssh

Sep 01, 2009

RAM-Disk für mehr Speed

RAM ist günstig und meist viel vorhanden. Komplett genutzt wird er selten. Mein Laptop hat (nur) 2 GB und selbst die nutz ich fast nie komplett. Was läge also näher, als diverse Anwendungen mithilfe von etwas RAM ein bisschen auf die Sprünge zu helfen?

Zum Beispiel greift Firefox relativ viel auf das Profilverzeichnis zu. Um diesen Zugriff via RAM-Disk zu Beschleunigen muss man bloß der Anleitung im Ubuntuforum folgen: http://ubuntuforums.org/showthread.php?t=1120475 Dort wird das Profil in ein anderes Verzeichnis ausgelagert und das ursprüngliche Verzeichnis wird dann zum Mountpunkt für die RAM-Disk. Ein cronjob sorgt via rsync dafür, dass das Profil beim Start in die RAM-Disk kopiert wird und Änderungen in der RAM-Disk regelmäßig wieder auf die Platte geschrieben werden. Firefox selbst merkt keinen Unterschied und kann weiterhin normal bedient werden.

Kleine Zusammenfassung der Vorgehensweise:

  • Cache vom Firefox aktivieren / Größe festlegen
  • Script anlegen und anpassen an Profilname
  • RAM-Disk erstellen (mit Größe > Cache+Addons+...)
  • Script in Crontab / Gnome Schedule / ... eintragen

Das Script:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash

# Change this to match your correct profile
PROFILE="xxxxxxxx.default"

cd "${HOME}/.mozilla/firefox"

if test -z "$(mount | grep -F "${HOME}/.mozilla/firefox/${PROFILE}" )"
then
    mount "${HOME}/.mozilla/firefox/${PROFILE}"
fi

if test -f "${PROFILE}/.unpacked"
then
    rsync -av --delete --exclude .unpacked ./"$PROFILE"/ ./profile/
else
    rsync -av ./profile/ ./"$PROFILE"/
    touch "${PROFILE}/.unpacked"
fi

exit

Das gleich Prinzip lässt sich auch bei anderen Programmen anwenden. Zum Beispiel habe ich das bei Liferea gemacht. Meine dortige liferea.db umfasst immerhin 26MB und ein Auslagern in den RAM zeigt schon seine Wirkung!

Nach diesen beiden Änderungen startet nun Liferea schneller als der Firefox! Vorher musste ich noch ein weilchen auf Liferea warten. Firefox selbst startet auch etwas schneller, muss aber noch einiges an Addons etc laden, was scheinbar länger dauert. Der Zugriff auf die "Superbar" / die "Multifunktionsadressleiste" ist aber wesentlich fixer und auch das Surfen geht flüssiger.

Mai 13, 2008

GnuPG - Weitere Adresse hinzufügen und Keygültigkeit verlängern

Ich wollte zu meinem Key eine weitere E-Mail-Adresse hinzufügen - ebenso, wie man es schon öfters auf den Keyservern gesehen hat. Dauerte einige Zeit, dann hatte ich was gefunden. Und gleichzeitig erbot sich mir die Möglichkeit, dass "Haltbarkeitsdatum" des Keys zu verlängern - praktisch, da ich beim erstellen nur 1 Jahr angegeben habe - gegen eventuellen Verlust. Das konnte ich nun wieder hochsetzen.

Die ganze Prozedur ist sehr einfach. Man gebe lediglich

gpg --edit-key $KEYID

ein und hat dort Optionen wie zum Beispiel

**adduid** - Um eine weitere Mail-Adresse hinzuzufügen
**expire** - Verfallszeitpunkt ändern
**passwd** - Die Passphrase ändern

Das und mehr praktische Sachen habe ich übrigens in der Deutschen GnuPG Anleitung gefunden.

Weiterhin fand ich eine Möglichkeit, einen Public-Key neu zu erstellen, sollte man diesen Verloren haben. Nachzulesen in der GnuPG FAQ

Einige Möglichkeiten, die es einem Ermöglichen, seinen Key wieder zurechtzurücken (z.B. beim Wechsel der Mailadresse), anstatt einen neuen zu erstellen.

posted at 02:57  ·   ·  mail  crypt