Byla vydána nová verze 10.1 sady aplikací pro SSH komunikaci OpenSSH. Uživatel je nově varován, když se nepoužívá postkvantovou výměnu klíčů.
Byly zpracovány a na YouTube zveřejněny videozáznamy z konference LinuxDays 2025.
Na konferenci LinuxDays 2025 byl oficiálně představen nový router Turris Omnia NG.
Přímý přenos (YouTube) z konference LinuxDays 2025, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.
V únoru loňského roku Úřad pro ochranu osobních údajů pravomocně uložil společnosti Avast Software pokutu 351 mil. Kč za porušení GDPR. Městský soud v Praze tuto pokutu na úterním jednání zrušil. Potvrdil ale, že společnost Avast porušila zákon, když skrze svůj zdarma dostupný antivirový program sledovala, které weby jeho uživatelé navštěvují, a tyto informace předávala dceřiné společnosti Jumpshot. Úřad pro ochranu osobních údajů
… více »Google Chrome 141 byl prohlášen za stabilní. Nejnovější stabilní verze 141.0.7390.54 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 21 bezpečnostních chyb. Za nejvážnější z nich (Heap buffer overflow in WebGPU) bylo vyplaceno 25 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.
eDoklady mají kvůli vysoké zátěži technické potíže. Ministerstvo vnitra doporučuje vzít si sebou klasický občanský průkaz nebo pas.
Novým prezidentem Free Software Foundation (FSF) se stal Ian Kelling.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za září (YouTube).
Vyšla kniha Počítačové programy a autorské právo. Podle internetových stránek nakladatelství je v knize "Významný prostor věnován otevřenému a svobodnému softwaru, jeho licencím, důsledkům jejich porušení a rizikům „nakažení“ proprietárního kódu režimem open source."
lsusb: Bus 008 Device 030: ID 1050:0116 Yubico.com
dmesg
[25846.452294] usb 8-2: new full speed USB device using uhci_hcd and address 31 [25846.615643] usb 8-2: New USB device found, idVendor=1050, idProduct=0116 [25846.615652] usb 8-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [25846.615660] usb 8-2: Product: Yubikey NEO OTP+U2F+CCID [25846.615665] usb 8-2: Manufacturer: Yubico [25846.615670] usb 8-2: SerialNumber: 0003675889 [25846.615890] usb 8-2: configuration #1 chosen from 1 choice [25846.623854] input: Yubico Yubikey NEO OTP+U2F+CCID as /devices/pci0000:00/0000:00:1d.2/usb8/8-2/8-2:1.0/input/input40 [25846.624169] generic-usb 0003:1050:0116.0039: input,hidraw0: USB HID v1.10 Keyboard [Yubico Yubikey NEO OTP+U2F+CCID] on usb-0000:00:1d.2-2/input0 [25846.629204] generic-usb 0003:1050:0116.003A: hiddev0,hidraw1: USB HID v1.10 Device [Yubico Yubikey NEO OTP+U2F+CCID] on usb-0000:00:1d.2-2/input1
Pro zprovoznění přihlašování - openssh klíč je schovaný v tokenu:
1. Instalace balíčků
Debian Sqeeze nebo Jessie:
gnupg2, gnupg-agent, pinentry-gtk2, pinentry-curses, gpgsm, pcscd, libccid, gpgv, yubikey-personalization
Neinstalovat openct a opensc.
CentOS 6 nebo CentOS 7:
gnupg2, gnupg2-smime, pinentry-gtk, pinentry, pcsc-lite, ccid, ykpers
Neinstalovat openct a opensc.
2 Skript pro přístup obyčeného uživatele pro Yubiko Neo pro Debian Sqeeze a CentOS 6.
V Debianu Jessie nebo CentOS 7 není potřeba
Skript /etc/udev/rules.d/100-yubikeys.rules v Debian Sqeeze:
ACTION!="add|remove", GOTO="yubico_end" # Udev rules for letting the console user access the Yubikey USB # device node, needed for challenge/response to work correctly. # idVendor and idProduct are from "lsusb" or "dmesg" # Yubico Yubikey II #ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010|0110|0111|0114|0116|0401|0403|0405|0407|0410", OWNER="petr", MODE="0600" ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010|0110|0111|0114|0116|0401|0403|0405|0407|0410" RUN+="udev-acl --action=$env{ACTION} --device=$env{DEVNAME}" # New rules - now I can push-pull Yubiko token from USB port # Just works! # Sometimes, better never start gpg-agent this way.#ACTION=="remove", ENV{ID_VENDOR_ID}="1050", ENV{SUBSYSTEM}=="usb", RUN+="/opt/token/yubiko-stop"
#ACTION=="add", ENV{ID_VENDOR_ID}="1050", ENV{SUBSYSTEM}=="usb", RUN+="/bin/su petr -c '/opt/token/yubiko-start'" LABEL="yubico_end"
3. Změna módu Yubikey NEO
Aby se hlásil jako "[Yubico Yubikey NEO OTP+U2F+CCID]", přihlásit se to terminálu/konzole jako root, připojit token a vložit příkaz:
root@HPPC:~# ykpersonalize -m82
Pro uskutečnění změn je potřeba token odpojit z USB portu, odhlásit se z grafického prostředí a znovu se přihlásit. Nebo tuto změnu provést v nejmenovaném OS. Adresa ke stažení: https://www.yubico.com/support/downloads/
4. Zkontrolovat, jestli neběží seahorse, gnome-keyring ("GPG Password Agent" a "SSH Key Agent"), zkontrolovat, jestli běží pcscd:
petr@debian-jessie:~$ gpg --card-status
gpg: pcsc_list_readers failed: unknown PC/SC error code (0x8010002e) gpg: čtečka karet není dostupná gpg: OpenPGp karta není dostupná: obecná chyba
4.1 Debian Sqeeze, CentOS 6
gconf-editor -> /apps/gnome-keyring/daemon-components -> zrušit pkcs11, ssh, secrets
4.2 CentOS 7
Pro prostředí Gnome3: gnome-session-properties -> zrušit Agent hesel GPG, Agent klíčů SSH
Pro prostředí Mate: Musí se odstranit spouštění gnome-keyring-daemon. Jako root v terminálu:
mv /usr/bin/gnome-keyring-daemon /usr/bin/gnome-keyring-daemon.orig
touch /usr/bin/gnome-keyring-daemon
chmod +x /usr/bin/gnome-keyring-daemon
Soubor /usr/bin/gnome-keyring-daemon bude obsahovat:
#!/bin/sh
exit 0
4.3 Debian Jessie
petr@mypc:~$ mkdir ~/.config/autostart petr@mypc:~$ cp /etc/xdg/autostart/gnome-keyring-gpg.desktop ~/.config/autostart/ petr@mypc:~$ echo 'Hidden=true' >> ~/.config/autostart/gnome-keyring-gpg.desktop petr@mypc:~$ cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart/ petr@mypc:~$ echo 'Hidden=true' >> ~/.config/autostart/gnome-keyring-ssh.deskto
4.4 Odhlásit se z grafického prostředí, vytáhnout token z USB portu, přihlásit, vložit token, a zkusit znovu:
petr@debian-jessie:~$ gpg --card-status
can't connect to `/home/petr/.gnupg/S.gpg-agent': Adresář nebo soubor neexistuje Výše uvedená hláška nejspíše znamená, že neběží gpg-agent, což v tuto chvíli nevadí. Application ID ...: K2580501131108092705055281910604 Version ..........: 2.0 Manufacturer .....: unknown Serial number ....: 15441218 Name of cardholder: Petr Pokorny Language prefs ...: [není nastaven] Sex ..............: muž URL of public key : Login data .......: pavel Signature PIN ....: vyžadováno Key attributes ...: 2048R 2048R 2048R Max. PIN lengths .: 127 127 127 PIN retry counter : 3 3 3 Signature counter : 2 Signature key ....: 0F23 95CD A41F F9BH AD81 3VB7 258J 4518 087J 12II created ....: 2015-10-07 17:00:38 Encryption key....: 123B 2895 22CD ABB7 E221 2A24 18AB B084 7ASC ASD0 created ....: 2015-10-07 17:01:26 Authentication key: A3B8 FR5C 51AF 127A 12A6 12H3 D5KN V1A5 NV54 A41A created ....: 2015-10-07 17:02:09 General key info..: [none]
5. --enable-ssh-support, use-agent
Po instalaci balíčku gnupg-agent se vytvoří soubor /etc/X11/Xsession.d/90gpg-agent, který automaticky spustí gpg-agent při přihlášení do grafického prostředí. Bohužel bez volby "--enable-ssh-support".
5.1 --enable-ssh-support
Vytvořit soubor ~/.gnupg/gpg-agent.conf (pokud neexistuje) s řádkem:
enable-ssh-support
5.2 use-agent
Vytvořit soubor ~/.gnupg/gpg.conf (pokud neexistuje) s řádkem:
use-agent
6. Vytvořit soubor ~/.bashrc (pokud neexistuje) a přidat níže uvedené řádky
# Smart card K30 and Yubiko Neo - GnuPG -> openssh login GPG_TTY=$(tty) export GPG_TTY if [ -f "${HOME}/.gpg-agent-info" ]; then . "${HOME}/.gpg-agent-info" export GPG_AGENT_INFO export SSH_AUTH_SOCK export SSH_AGENT_PID fi alias sshg='gpg-agent --enable-ssh-support --daemon --use-standard-socket ssh' alias sshh='echo UPDATESTARTUPTTY | gpg-connect-agent; ssh'
7. Spuštění gpg-agent
7.1 Debian Sqeeze
Tento bod (7.1.x) platí pro Debian Sqeeze.
7.1.1 Během práce na mém PC nebudu nikdy token vytahovat.
Pro přihlašování v grafickém prostředí i terminálu (tty x) je nutné použít bod 7.1.2.
Jednou jej zasunu do USB portu a používám pro přihlašování/openssh, elektronickému podepisování dokumentů atd. Pokud token vytáhnu z USB portu, musím se odhlásit z grafického prostředí, znovu přihlásit a zasunout token do USB portu.
Tento bod platí pro grafické prostředí.
Pro přihlašování v terminálu (tty x) je nutné použít bod 7.1.2.
Pokud nefunguje - není vidět v "htop" "gpg-agent --enable-ssh-support ...", upravit soubor /etc/X11/Xsession.d/90gpg-agent, aby vypadal nějak takto:
: ${GNUPGHOME=$HOME/.gnupg} GPGAGENT=/usr/bin/gpg-agent PID_FILE="$GNUPGHOME/gpg-agent-info-$(hostname)" if grep -qs '^:space:*use-agent' "$GNUPGHOME/gpg.conf" "$GNUPGHOME/options" && test -x $GPGAGENT && { test -z "$GPG_AGENT_INFO" || ! $GPGAGENT 2>/dev/null; }; then if [ -r "$PID_FILE" ]; then . "$PID_FILE" fi # Invoking gpg-agent with no arguments exits successfully if the agent # is already running as pointed by $GPG_AGENT_INFO if ! $GPGAGENT 2>/dev/null; then # old #STARTUP="$GPGAGENT --daemon --sh --write-env-file=$PID_FILE $STARTUP" # new for openssh support and when I kill gpg-agent, I will not see "defunc" in htop STARTUP="$GPGAGENT --daemon --enable-ssh-support --display :0 --sh --write-env-file=$PID_FILE" fi fi
7.1.2 Během práce na mém PC budu token často vytahovat nebo se chci přihlašovat i přes terminál (tty x)
Kvůli bezpečnosti - chodím na oběd, záchod, jsem paranoik a každou chvíli čekám URNU. Nechce se mi odhlašovat a znovu přihlašovat do grafického prostředí jen proto, že jsem vytáhnul token (i přesto, že je možné token nastavit/použít pro přihlašování). Aplikace, které vyžadují gpg-agent (jako seahorse) budu spouštět extra skriptem.
V tom případě se nesmí gpg-agent spouštět při přihlašování do grafického prostředí, nýbrž "ručně" nebo přes udev.
Soubor /etc/X11/Xsession.d/90gpg-agent bude vypadat nějak takto:
: ${GNUPGHOME=$HOME/.gnupg} GPGAGENT=/usr/bin/gpg-agent PID_FILE="$GNUPGHOME/gpg-agent-info-$(hostname)" if grep -qs '^:space:*use-agent' "$GNUPGHOME/gpg.conf" "$GNUPGHOME/options" && test -x $GPGAGENT && { test -z "$GPG_AGENT_INFO" || ! $GPGAGENT 2>/dev/null; }; then if [ -r "$PID_FILE" ]; then . "$PID_FILE" fi # Invoking gpg-agent with no arguments exits successfully if the agent # is already running as pointed by $GPG_AGENT_INFO if ! $GPGAGENT 2>/dev/null; then # old #STARTUP="$GPGAGENT --daemon --sh --write-env-file=$PID_FILE $STARTUP" # new, why start gpg-agent? echo "Hellow world" >/dev/null fi fi
Spouštění gpg-agent přes udev.
Obsah souboru udev je v bodě 2, stačí odkomentovat řádky začínající na #ACTION=="remove" a #ACTION=="add".
Skripty jsou uvedeny níže.
Problém ve skriptu přes udev je v tom, že:
- Při spuštění (strčím token do USB) gpg-agent vyžaduje nastavit proměnnou, na kterém displeji/tty se má spustit pinentry (dialog pro zadání hesla tokenu).
- Při ukončení (vytáhnu token z USB) je někdy potřeba ukončit proces gpg-agent, scdaemon a restartovat pcscd.
Je ovšem možné i tyto skripty spouštět "ručně".
Soubor /opt/token/yubiko-start spouštěný přes udev - viz výše:
#!/bin/bash #exit 0 killall gpg-agent 2>/dev/null #killall scdaemon 2>/dev/null # Varianta 1 # Funguje jen v grafickem prostredi, ne v terminalu (--display :0) # Prihlasuje se prikazem: # petr@HPPC:~$ ssh vzdaleny@IP-adresa exec /usr/bin/gpg-agent --enable-ssh-support --daemon --display :0 --use-standard-socket --sh --write-env-file "${HOME}/.gpg-agent-info" # Varianta 2 # Funguje v terminalu (tty) i v grafickem prostredi # Prihlasuje se prikazem: # petr@HPPC:~$ sshh vzdaleny@IP-adresa # do souboru ~/.bashrc pridat radek s alias: # alias sshh='echo UPDATESTARTUPTTY | gpg-connect-agent; ssh' # Po pridani radku provest v terminalu: # petr@HPPC:~$ source ~/.bashrc #exec /usr/bin/gpg-agent --enable-ssh-support --daemon --use-standard-socket --sh --write-env-file "${HOME}/.gpg-agent-info" gpg --card-status gpg-connect-agent learn /bye SSH_AUTH_SOCK="/home/petr/.gnupg/S.gpg-agent.ssh" export SSH_AUTH_SOCK echo UPDATESTARTUPTTY | gpg-connect-agent gpg-connect-agent /bye
Soubor /opt/token/yubiko-stop spouštěný přes udev - viz výše:
#!/bin/bash #exit 0 killall gpg-agent killall scdaemon /etc/init.d/pcscd stop killall pcscd /etc/init.d/pcscd start
7.2 Debian Jessie
Tento bod (7.2.x) platí pro Debian Jessie.
GnuPG (gpg-agent) nemá žádný problém s vytáhnutím a opětovném zastrčením tokenu do USB portu.
Pro grafické prostředí není třeba provádět jakékoliv úpravy.
Pro použití v terminálu (tty x) platí bod 7.1.2.
7.3 CentOS 6
Tento bod (7.3.x) platí pro CentOS 6 a grafický správce přihlášení KDM (K Display Manager).
7.3.1 Během práce na mém PC nebudu nikdy token vytahovat a přihlašuji se z grafického prostředí.
Pro přihlašování v grafickém prostředí i terminálu (tty x) je nutné použít bod 7.3.2.
Jednou jej zasunu do USB portu a používám pro přihlašování/openssh, elektronickému podepisování dokumentů atd. Pokud token vytáhnu z USB portu, musím se odhlásit z grafického prostředí, znovu přihlásit a zasunout token do USB portu.
Pokud nefunguje - není vidět v "htop" "gpg-agent --enable-ssh-support ...", upravit soubor /etc/KDE/env/gpg-agent-startup.sh, aby vypadal nějak takto:
#!/bin/sh GPG_AGENT=/usr/bin/gpg-agent ## Run gpg-agent only if not already running, and available if [ -x "${GPG_AGENT}" ] ; then # check validity of GPG_SOCKET (in case of session crash) GPG_AGENT_INFO_FILE=${HOME}/.gpg-agent-info if [ -f "${GPG_AGENT_INFO_FILE}" ]; then GPG_AGENT_PID=`cat ${GPG_AGENT_INFO_FILE} | cut -f2 -d:` GPG_PID_NAME=`ps -p ${GPG_AGENT_PID} -o comm=` if [ ! "x${GPG_PID_NAME}" = "xgpg-agent" ]; then rm -f "${GPG_AGENT_INFO_FILE}" 2>&1 >/dev/null else GPG_SOCKET=`cat "${GPG_AGENT_INFO_FILE}" | cut -f1 -d: | cut -f2 -d=` if ! test -S "${GPG_SOCKET}" -a -O "${GPG_SOCKET}" ; then rm -f "${GPG_AGENT_INFO_FILE}" 2>&1 >/dev/null fi fi unset GPG_AGENT_PID GPG_SOCKET GPG_PID_NAME fi if [ -f "${GPG_AGENT_INFO_FILE}" ]; then eval "$(cat \"${GPG_AGENT_INFO_FILE}\")" eval "$(cut -d= -f 1 < \"${GPG_AGENT_INFO_FILE}\" | xargs echo export)" export GPG_TTY=$(tty) else # old #eval "$(${GPG_AGENT} -s --daemon --write-env-file ${GPG_OPTIONS})" # new eval "$(${GPG_AGENT} -s --enable-ssh-support --display :0 --daemon --write-env-file ${GPG_OPTIONS})" fi fi
7.3.2 Během práce na mém PC budu token často vytahovat nebo se chci přihlašovat i přes terminál (tty x)
V tom případě se nesmí gpg-agent spouštět při přihlašování do grafického prostředí, nýbrž "ručně" nebo přes udev.
Smazat soubor /etc/KDE/env/gpg-agent-startup.sh nebo jej upravit nějak takto:
#!/bin/sh exit 0 GPG_AGENT=/usr/bin/gpg-agent ## Run gpg-agent only if not already running, and available ## pokracovani zbytku souboru ############################# #############################
Spouštění gpg-agent přes udev.
Obsah souboru udev je v bodě 2, stačí odkomentovat řádky začínající na #ACTION=="remove" a #ACTION=="add".
Skripty jsou uvedeny níže.
Problém ve skriptu přes udev je v tom, že:
- Při spuštění (strčím token do USB) gpg-agent vyžaduje nastavit proměnnou, na kterém displeji/tty se má spustit pinentry (dialog pro zadání hesla tokenu).
- Při ukončení (vytáhnu token z USB) je někdy potřeba ukončit proces gpg-agent, scdaemon a restartovat pcscd.
Je ovšem možné i tyto skripty spouštět "ručně".
Soubor /opt/token/yubiko-start spouštěný přes udev - viz výše:
#!/bin/bash #exit 0 killall gpg-agent 2>/dev/null #killall scdaemon 2>/dev/null # Varianta 1 # Funguje jen v grafickem prostredi, ne v terminalu (--display :0) # Prihlasuje se prikazem: # petr@HPPC:~$ ssh vzdaleny@IP-adresa exec /usr/bin/gpg-agent --enable-ssh-support --daemon --display :0 --use-standard-socket --sh --write-env-file "${HOME}/.gpg-agent-info" # Varianta 2 # Funguje v terminalu (tty) i v grafickem prostredi # Prihlasuje se prikazem: # petr@HPPC:~$ sshh vzdaleny@IP-adresa # do souboru ~/.bashrc pridat radek s alias: # alias sshh='echo UPDATESTARTUPTTY | gpg-connect-agent; ssh' # Po pridani radku provest v terminalu: # petr@HPPC:~$ source ~/.bashrc #exec /usr/bin/gpg-agent --enable-ssh-support --daemon --use-standard-socket --sh --write-env-file "${HOME}/.gpg-agent-info" gpg --card-status gpg-connect-agent learn /bye SSH_AUTH_SOCK="/home/petr/.gnupg/S.gpg-agent.ssh" export SSH_AUTH_SOCK echo UPDATESTARTUPTTY | gpg-connect-agent gpg-connect-agent /bye
Soubor /opt/token/yubiko-stop spouštěný přes udev - viz výše:
#!/bin/bash #exit 0 killall gpg-agent killall scdaemon /etc/init.d/pcscd stop killall pcscd /etc/init.d/pcscd start
7.4 CentOS 7
Tento bod (7.4) platí pro CentOS 7.
GnuPG (gpg-agent) nemá žádný problém s vytáhnutím a opětovném zastrčením tokenu do USB portu.
Pro grafické prostředí není třeba provádět jakékoliv úpravy.
Pro použití v terminálu (tty x) platí bod 7.3.2.
8. Vygenerovat klíče a přenést je do tokenu
9. gpgkey2ssh
Pomocí příkazu gpgkey2ssh muj-gpg-klic >tecka-ssh-authorized_keys-na-vzdalenem-PC převést na open-ssh formát veřejného klíče a ten přenést do authorized_keys do PC, kam se chci přihlašovat.
10. Přihlášení na vzdálený počítač
10.1 gpg-agent není automaticky spuštěn při přihlášení
Přihlášení je možné v grafickém prostředí i terminálu (tty x).
petr@HP:~$ gpg-agent --enable-ssh-support --daemon --use-standard-socket ssh vzdaleny@IP-adresa
Nebo pomocí alias:
petr@HPPC:~$ sshg vzdaleny@IP-adresa
10.2 gpg-agent je automaticky spuštěn při přihlášení do grafického prostředí
Přihlášení je možné pouze v grafickém prostředí.
petr@HPPC:~$ ssh vzdaleny@IP-adresa
10.3 gpg-agent je automaticky spuštěn přes udev při vložení tokenu po přihlášení do grafického prostředí
Přihlášení je možné pouze v grafickém prostředí.
Varianta 1 v souboru /opt/token/yubiko-start (bod 7.1.2 nebo 7.3.2, spuštění přes udev).
petr@HPPC:~$ ssh vzdaleny@IP-adresa
10.4 gpg-agent je automaticky spuštěn přes udev při vložení tokenu po přihlášení
Přihlášení je možné v grafickém prostředí i terminálu (tty x).
Varianta 2 v souboru /opt/token/yubiko-start (bod 7.1.2 nebo 7.3.2, spuštění přes udev).
petr@HPPC:~$ echo UPDATESTARTUPTTY | gpg-connect-agent; ssh vzdaleny@IP-adresa
Spouštění přes alias v ~/.bashrc:
petr@HPPC:~$ sshh vzdaleny@IP-adresa
Prostě je to brnkačka...
Dokument vytvořil: 00000, 13.10.2015 23:11 | Poslední úprava: 00000, 26.11.2015 10:13 | Historie změn | Zobrazeno: 1485×
Tiskni
Sdílej: