GnuPG (Русский) - ArchWiki

# GnuPG (Русский)

Состояние перевода: На этой странице представлен перевод статьи GnuPG. Дата последней синхронизации: 18 июля 2015‎‎. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Эта статья или раздел нуждается в переводе

Примечания: Обновления скопированы из английской версии и нуждаются в переводе (обсуждение: Talk:GnuPG (Русский)#)

GnuPG позволяет шифровать и подписывать данные, предоставляя развитую систему управления ключами, которая включает в себя модули доступа ко всем типам каталогов открытых ключей.

## Установка

Установите gnupg, доступный в официальных репозиториях.

При этом будет установлен pinentry — набор простых графических диалогов, который используется GnuPG для ввода паролей. Пакет создает символическую ссылку `/usr/bin/pinentry`, которая по умолчанию указывает на `/usr/bin/pinentry-gtk-2`.

## Переменные окружения

### GNUPGHOME

Переменная `$GNUPGHOME` используется GnuPG для определения каталога, в котором хранятся все настройки. По умолчанию `$GNUPGHOME` не установлена и используется домашний каталог текущего пользователя. Таким образом, после установки появится новый каталог `~/.gnupg`. Вы можете указать другой каталог для GnuPG, добавив следующую строку в один из файлов начальной инициализации для вашего пользователя (например, `~/.bash_profile` или `~/.profile`):

    export GNUPGHOME="/путь/до/каталога"

Обратите внимание: По умолчанию, для каталога GnuPG устанавливаются права доступа 700, а для файлов в нем — 600. Это значит, что только владелец каталога имеет права на чтение, запись и доступ к файлам (r,w,x). Так сделано для безопасности и не следует это изменять. Если каталог GnuPG или какой-либо файл в нем не следует этому правилу, будет выводиться предупреждение об использовании небезопасных прав доступа.

### GPG_AGENT_INFO

`GPG_AGENT_INFO` содержит путь к gpg-агенту. Состоит из трех полей, разделенных символами двоеточия:

1. путь к файлу сокета
2. ID процесса (PID) gpg-agent
3. версия протокола (всегда 1)

Пример: `GPG_AGENT_INFO=/tmp/gpg-eFqmSC/S.gpg-agent:7795:1`. При запуске gpg-agent, этой переменной устанавливается правильное значение.

Обратите внимание: С версии GnuPG 2.1 больше нет необходимости использовать `GPG_AGENT_INFO` и эта переменная просто игнорируется. Вместо этого используется доменный сокет Unux с фиксированным именем `$GNUPGHOME/S.gpg-agent`. Агент также теперь запускается автоматически любыми инструментами, которыми требуется взаимодействие с ним.

## Файл настроек

По умолчанию используется файл настроек `~/.gnupg/gpg.conf`. Если вы хотите изменить расположение, укажите новый каталог настроек GnuPG при помощи опции `--homedir` (`$ gpg --homedir /путь/к/каталогу`), либо посредством установки переменной окружения `$GNUPGHOME`.

В этом файле вы можете указать дополнительные опции. При этом не следует предварять имена опций знаками "-": просто укажите имя опции и необходимые аргументы. В качестве шаблона вы можете использовать файл `usr/share/gnupg/gpg-conf.skel`.

Пример базового файла настроек:

    ~/.gnupg/gpg.conf

    default-key имя         # полезно, когда у вас несколько ключей и вы хотите указать какой использовать по умолчанию
    keyring файл            # добавит файл в текущий список наборов ключей (keyrings)
    trustdb-name файл       # использовать файл вместо стандартного trustdb
    homedir каталог         # использовать указанный каталог настроек вместо ~/.gnupg
    display-charset utf-8       # пропустить конвертацию кодировок и полагать что система использует кодировку UTF-8
    keyserver имя           # использовать имя как сервер ключей
    no-greeting                 # не показывать текст приветствия во время запуска
    armor                       # отобразить ключ в ASCII-совместимом формате (арморинг). По умолчанию используется двоичный формат OpenPGP

Если вы хотите задать какие-нибудь опции по умолчанию для новых пользователей, поместите соответствующие файлы в `/etc/skel/.gnupg`. При создании нового пользователя файлы отсюда будут скопированы в его каталог настроек GnuPG. Также предоставляется скрипт addgnupghome, который позволяет создать каталоги GnuPG для существующих пользователей:

    # addgnupghome user1 user2

Команда создаст каталоги `/home/user1/.gnupg` и `/home/user2/.gnupg`, соответственно, скопировав в них файлы из `/etc/skel/.gnupg`. Пользователи, у которых уже есть каталог настроек GnuPG, будут пропущены.

## Основы управления ключами

Обратите внимание: В этом разделе для любой команды, принимающей идентификатор ключа (обозн. `<идентификатор>`), можно вписать как сам идентификатор, так и его отпечаток, часть имени или адрес электронной почты. GnuPG в этом плане предоставляет большую гибкость.

### Создание ключа

- Сначала выберите наиболее криптостойкие алгоритмы:

    ~/.gnupg/gpg.conf

    personal-digest-preferences SHA512
    cert-digest-algo SHA512
    default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed

- Сгенерируйте личный ключ, набрав

    $ gpg --full-gen-key

Обратите внимание: Опция `--full-gen-key` доступна начиная с версии gnupg-2.1.0.
Note: You can use `--expert` for getting alternative ciphers available (like ECC Elliptic Curve)

Вам нужно будет ответить на несколько вопросов. Скорее всего, вам понадобится пара RSA-ключей: один для подписывания данных, второй для их шифрования. Размера ключа 2048 бит достаточно. Использование 4096-битных ключей не дает практически никакой пользы, однако тратит куда больше вычислительных ресурсов [1].

Хотя указание даты окончания срока действия подключа технически не является обязательным, это, тем не менее, считается хорошей практикой. Для большинства пользователей будет достаточно срока в один год. В таком случае, даже если вы потеряете доступ к своему набору ключей, по окончании этого срока другие пользователи смогут наверняка узнать, что ключ больше не используется. Обратите внимание, что вы можете увеличивать срок действия уже сгенерированного ключа после без необходимости каждый раз создавать новый.

### Управление ключами

- Запуск `gpg --edit-key <идентификатор>` отобразит меню, с помощью которого вы можете выполнять большинство задач, связанных с управлением ключами. Например, для указания даты окончания срока ключа:

    $ gpg --edit-key <идентификатор>
    > key номер ключа
    > expire гггг-мм-дд
    > save
    > quit

Некоторые полезные команды:

    > passwd       # изменить пароль
    > clean        # сжать все неиспользуемые идентификаторы (которые были отозваны либо их срок действия истек)
    > revkey       # отозвать ключ
    > addkey       # добавить подключ к текущему ключу
    > expire       # изменить дату окончания срока действия ключа

- Отобразить открытый ключ в ASCII-совместимом формате (для распространения):

    $ gpg --armor --output public.key --export <идентификатор>

- Зарегистрировать ключ в публичном PGP сервере ключей, чтобы другие пользователи могли получить ваш открытый ключ без необходимости напрямую с вами связываться:

    $ gpg  --keyserver pgp.mit.edu --send-keys <идентификатор>

- Подписать и зашифровать файл для пользователя Bob:

    $ gpg se -r Bob файл

- Создать текстовый файл со встроенной подписью:

    $ gpg --clearsign файл

### Exporting subkey

If you plan to use the same key across multiple devices, you may want to strip out your master key and only keep the bare minimum encryption subkey on less secure systems.

First, find out which subkey you want to export.

    $ gpg -K

Select only that subkey to export.

    $ gpg -a --export-secret-subkeys [subkey id]! > /tmp/subkey.gpg

Warning: If you forget to add the !, all of your subkeys will be exported.

At this point you could stop, but it is most likely a good idea to change the passphrase as well. Import the key into a temporary folder.

    $ gpg --homedir /tmp/gpg --import /tmp/subkey.gpg
    $ gpg --homedir /tmp/gpg --edit-key <user-id>
    > passwd
    > save
    $ gpg --homedir /tmp/gpg -a --export-secret-subkeys [subkey id]! > /tmp/subkey.altpass.gpg

Note: You will get a warning that the master key was not available and the password was not changed, but that can safely be ignored as the subkey password was.

At this point, you can now use `/tmp/subkey.altpass.gpg` on your other devices.

### Ротация подключей

Важно: Никогда не удаляйте просроченные или отозванные подключи без особой на то причины, иначе вы полностью потеряете возможность расшифровать файлы, зашифрованные старым подключом. Удаляйте только чужие просроченные или отозванные подключи, если хотите очистить свой список открытых ключей.

Если вы выбрали дату окончания срока действия подключа, желательно уже за несколько недель до этой даты создать новый. Таким образом, у других пользователей будет возможность вовремя обновить свой список ключей.

Обратите внимание: Вам не обязательно создавать новый ключ только потому, что предыдущий просрочен. Вы всегда можете продлить срок ключа.

- Создайте новый подключ (запустите дважды для создания отдельных ключей для подписывания и шифрования)

    $ gpg --edit-key <идентификатор>
    > addkey

При этом вам будет задано несколько вопросов (рекомендованные настройки смотрите в предыдущем разделе).

- Сохраните изменения

    > save

- Обновите ключ на сервере ключей.

    $ gpg  --keyserver pgp.mit.edu --send-keys <идентификатор>

Обратите внимание: Отзывать просроченные подключи абсолютно бесполезно и является плохой практикой. Если вы постоянно отзываете ключи, уверенность других пользователей в вас может быть подорвана.

### Импортирование ключей

- Импортировать открытый ключ в ваш список открытых ключей:

    $ gpg --import public.key

- Импортировать закрытый ключ в ваш список закрытых ключей:

    $ gpg --import private.key

- Импортировать ключ с сервера ключей (если '--keyserver' не указан, будет использован сервер по умолчанию):

    $ gpg --keyserver pgp.mit.edu --recv-keys <идентификатор>

### Отображение ключей

- Вывести список открытых ключей:

    $ gpg --list-keys

- Вывести список закрытых ключей:

    $ gpg --list-secret-keys

## Шифрование и дешифрование

Для шифрования и дешифрования есть возможность использовать сразу несколько закрытых ключей. В этом случае вам будет необходимо указать, какой именно ключ следует применить. Для этого используйте опцию `-u <идентификатор>` (или `--local-user <идентификатор>`), иначе будет использован ключ, выбранный по умолчанию.

Чтобы зашифровать файл:

    $ gpg --encrypt -o secret.tar.gpg secret.tar

- Чтобы указать, для кого будет зашифрован файл, воспользуйтесь опцией `-r <идентификатор>` (или `--recipient <идентификатор>`).
- Вы можете использовать gnupg для шифрования важных документов, но только один файл за раз. Если вы хотите зашифровать директорию или целую файловую систему, вам стоит взглянуть на TrueCrypt или EncFS. Тем не менее, вы всегда можете заархивировать несколько файлов и затем зашифровать архив.

Чтобы расшифровать файл:

    $ gpg --decrypt secret.tar.gpg

Необходимо будет ввести ваш пароль.

### Шифрование пароля

Может быть полезно зашифровать какой-нибудь пароль, чтобы он не хранился в чистом виде в файле настроек. Например, пароль от вашей учетной записи электронной почты.

Первым делом создайте файл пароля, содержащий только ваш пароль и пустую строку. Обратите внимание: файл должен содержать одну пустую строку в конце, иначе gpg выведет сообщение об ошибке.

Теперь выполните:

    $ gpg -e -a -r <идентификатор> файл_пароля

Опция `-e` обозначает режим шифрования, `-a` — для вывода в ASCII-совместимом формате, `-r` — идентификатор ключа.

После выполнения команды в текущем каталоге будет создан новый файл `файл_пароля.asc`.

## gpg-agent

gpg-agent чаще всего используется как посредник для временного хранения пароля (пароль не будет запрашиваться каждый раз, когда нужен). Он полезен если GnuPG используется внешней программой — например, почтовым клиентом.

### Включение

Начиная с версии gnupg-2.1, gpg-agent используется по умолчанию. Если вы используете предыдущие версии, вы можете включить его, добавив следующую строку в `gpg.conf`:

    ~/.gnupg/gpg.conf

    use-agent

Теперь GnuPG будет использовать агент каждый раз, когда ему необходим пароль.

### Запуск

Информация в этой статье или разделе устарела

Причина: пожалуйста, используйте первый аргумент шаблона для указания причины. (Обсудить)

Чтобы агент запускался автоматически, добавьте следующую запись в ваш файл инициализации среды (например, `.xinitrc` или `.bash_profile`). Если каталог настроек GnuPG у вас расположен не в стандартном месте (`~/.gnupg`), не забудьте при этом соответствующим образом обновить значение переменной `envfile`.

    ~/.bash_profile

    envfile="$HOME/.gnupg/gpg-agent.env"
    if [[ -e "$envfile" ]] && kill -0 $(grep GPG_AGENT_INFO "$envfile" | cut -d: -f 2) 2>/dev/null; then
        eval "$(cat "$envfile")"
    else
        eval "$(gpg-agent --daemon --enable-ssh-support --write-env-file "$envfile")"
    fi
    export GPG_AGENT_INFO  # the env file does not contain the export statement
    export SSH_AUTH_SOCK   # enable gpg-agent for ssh

Перезайдите в систему и убедитесь, что gpg-agent запущен:

    $ pgrep gpg-agent

Совет: Чтобы убедиться в том, что gpg-agent работает корректно, наберите `$ gpg-connect-agent`. Если всё сделано правильно, будет отображено приглашение для ввода команд (наберите `bye` и `quit` для того, чтобы закрыть соединение и выйти).

### Запуск с помощью systemd

Также вы можете использовать systemd в пользовательском режиме для запуска агента. Это имеет смысл и при gnupg >= 2.1, поскольку так он будет запускаться вне пользовательских сессий и под контролем systemd.

Создайте файл юнита для gpg-agent:

    ~/.config/systemd/user/gpg-agent.service

    [Unit]
    Description=GnuPG private key agent
    IgnoreOnIsolate=true

    [Service]
    Type=forking
    ExecStart=/usr/bin/gpg-agent --daemon --homedir=%h/.gnupg
    ExecReload=/usr/bin/gpg-connect-agent RELOADAGENT
    Restart=on-abort

    [Install]
    WantedBy=default.target

Затем включите его в список автозапуска и запустите его командами `systemctl --user daemon-reload`, `systemctl --user enable gpg-agent` и `systemctl --user start gpg-agent`.

Обратите внимание:

- Вам может понадобиться установить для агента какие-нибудь переменные окружения, например `GNUPGHOME`. Как это сделать, смотрите в разделе systemd/User#Environment variables.
- Если вы используете стандартный каталог настроек GnuPG (`~/.gnupg`), вам не нужно указывать его явно. В примере он указан исключительно для справки.

### Настройка

gpg-agent можно настроить в файле `~/.gnupg/gpg-agent.conf`. Все опции для настройки перечислены на странице `man gpg-agent`. Например, так вы можете задать время жизни для ключей в кэше с момента последнего использования:

    ~/.gnupg/gpg-agent.conf

    default-cache-ttl 3600

Tip: To cache your passphrase for the whole session, please run the following command:

    $ /usr/lib/gnupg/gpg-preset-passphrase --preset XXXXXX

where XXXX is the keygrip. You can get its value when running `gpg --with-keygrip -K`. Passphrase will be stored until `gpg-agent` is restarted. If you set up `default-cache-ttl` value, it will take precedence.

### Перезапуск агента

После обновления настроек, перезапустите агент, передав команду `RELOADAGENT` программе gpg-connect-agent:

    $ echo RELOADAGENT | gpg-connect-agent

Будет выведено сообщение `OK`.

Или же, если вы используете #Запуск_с_помощью_systemd, можно использовать следующую команду:

    $ systemctl --user reload gpg-agent

### pinentry

gpg-agent использует pinentry для отображения диалога запроса пароля. Это настраивается в файле настроек gpg-agent.

По умолчанию используется диалог GTK+. Однако, есть и другие варианты — смотрите подробнее в `info pinentry`. Чтобы установить другой диалог, установите опцию `pinentry-program`:

    ~/.gnupg/gpg-agent.conf

    # PIN entry program
    # pinentry-program /usr/bin/pinentry-curses
    # pinentry-program /usr/bin/pinentry-qt4
    # pinentry-program /usr/bin/pinentry-kwallet
    pinentry-program /usr/bin/pinentry-gtk-2

Совет: Чтобы использовать `/usr/bin/pinentry-kwallet` потребуется установить пакет kwalletcli.

После внесения изменений перезапустите gpg-agent.

### Unattended passphrase

Начиная с GnuPG 2.1.0 использование gpg-agent и pinentry стало обязательным; это нарушает обратную совместимость для парольных фраз, которые передавались через входной поток с помощью опции `--passphrase-fd 0`. Чтобы иметь возможность сделать, как раньше, требуется выполнить несколько шагов.

Первым делом, отредактируйте настройки gpg-agent, разрешив режим петли (loopback) для pinentry:

    ~/.gnupg/gpg-agent.conf

    allow-loopback-pinentry

Перезапустите процесс gpg-agent чтобы изменения вступили в силу.

Теперь либо запускайте GnuPG с опцией `--pinentry-mode loopback`

    $ gpg --pinentry-mode loopback ...

либо добавьте ее же в файл настроек GnuPG:

    ~/.gnupg/gpg.conf

    pinentry-mode loopback

Обратите внимание: Разработчики отмечают, что установка `pinentry-mode loopback` в файле настроек может нарушать другую функциональность GnuPG, и, если это возможно, лучше указывать опцию через командную строку [2].

## Встречи для подписи ключей

Чтобы дать возможность пользователям проверить ключи в хранилищах ключей и с собственных списках (то есть, убедиться, что владелец ключа на самом деле тот, за кого себя выдает), PGP/GnuPG использует так называемую "сеть доверия". Для поддержания и развития сети периодически организуются очные встречи, на которых люди, использующие систему PGP, обмениваются своими публичными ключами.

Протокол Циммермана–Сассамана призван сделать этот процесс наиболее эффективным. Здесь вы можете найти подробную инструкцию по проведению встреч на русском языке.

### caff

Для упрощения процедуры подписи ключей и отправку этих подписей владельцам ключей вы можете воспользоваться утилитой caff. Установить ее можно из AUR с пакетом caff-svnAUR. Там же доступен signing-party-svnAUR — набор удобных инструментов, включающий также caff. Так или иначе, потребуется установить много зависимостей из AUR. Как вариант, вы можете загрузить и установить эти зависимости из CPAN:

    cpanm Any::Moose
    cpanm GnuPG::Interface

Для отправки подписей владельцам вам нужен работающий агент MTA. Если у вас его еще нет, установите msmtp.

## Смарт-карты

Обратите внимание: Необходимо установить пакеты pcsclite и libusb-compat, а также запустить соответствующую службу systemd: `pcscd.service`.

GnuPG использует scdaemon как интерфейс к вашему устройству для чтения смарт-карт. Для получения дополнительной информации обратитесь к man-странице `scdaemon (1)`.

### Настройка только для GnuPG

Если вы не планируете использовать другие карты, кроме тех, что работают на основе GnuPG, необходимо проверить параметр `reader-port` в файле `~/.gnupg/scdaemon.conf`. Значение '0' относится к первому доступному считывателю последовательного порта, а значение '32768' (по умолчанию) — к первому считывателю USB.

### GnuPG вместе с OpenSC

Если вы используете смарт-карту с драйвером opensc (например, ID-карты, распространенные в некоторых странах), необходимо уделить чуть большее время настройке GnuPG. Используя стандартную конфигурацию, при запросе `gpg --card-status` вы можете получать сообщения вроде этого:

    gpg: selecting openpgp failed: ec=6.108

По умолчанию scdaemon пытается подключиться к устройству напрямую. Эта попытка провалится, если считыватель карт используется другим процессом. Например, если демон pcscd используется OpenSC. Чтобы справиться с этой ситуацией, необходимо использовать тот же самый драйвер, который использует opensc — тогда они смогут работать вместе. Чтобы заставить scdaemon использовать pcscd, необходимо удалить `reader-port` из файла `~/.gnupg/scdaemon.conf`, указать путь к библиотеке `libpcsclite.so` и отключить ccid, чтобы удостовериться, что используется именно pcscd:

    ~/scdaemon.conf

    pcsc-driver /usr/lib/libpcsclite.so
    card-timeout 5
    disable-ccid

Обратитесь к man-странице `scdaemon (1)`, если вы не используете OpenSC.

## Решение проблем

### Not enough random bytes available

When generating a key, gpg can run into this error:

    Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy!

To check the available entropy, check the kernel parameters:

    cat /proc/sys/kernel/random/entropy_avail

A healthy Linux system with a lot of entropy available will have return close to the full 4,096 bits of entropy. If the value returned is less than 200, the system is running low on entropy.

To solve it, remember you do not often need to create keys and best just do what the message suggests (e.g. create disk activity, move the mouse, edit the wiki - all will create entropy). If that does not help, check which service is using up the entropy and consider stopping it for the time. If that is no alternative, see Random number generation#Faster alternatives.

### su

При использовании `pinentry`, у вас должны быть корректные настройки прав доступа к устройству терминала (например `/dev/tty1`). Однако, с `su` (или `sudo`) права доступа остаются от прежнего пользователя системы. Из-за этого будут возникать проблемы с pinentry, даже при запуске от имени суперпользователя. Чтобы исправить эту проблему, назначьте нового владельца к устройству терминала до использования pinentry (например, используя gpg-agent). Используя gpg от суперпользователя, просто измените владельца на root перед запуском gpg:

    chown root /dev/ttyN  # где N — текущий tty

Затем верните прежнего владельца после первого запуска gpg. Аналогично должно работать и для `/dev/pts`.

Обратите внимание: Владелец tty должен совпадать с пользователем, от имени которого запущена pinentry. Добавления пользователя в группу `tty` не поможет решить проблему.

### Agent выводит ошибку end of file

По умолчанию используется диалог pinentry-gtk-2, который требует для работающую сессионную шину DBus. Смотрите подробнее об этой проблеме на странице General troubleshooting#Session permissions.

Также вы можете использовать версию `pinentry-qt`. Как это сделать, смотрите в разделе #pinentry.

### Настройка прав доступа для KGpg

Некоторые пользователи сталкивались с проблемой, когда kdeutils-kgpg не может получить доступ к настройкам в `~/.gnupg/`. Одна из причин может быть в устаревшем файле опций. Подробности смотрите в отчете об ошибке.

Также наблюдались проблемы, когда KGpg не запускается, если права доступа к директории `~/.gnupg` отличаются от `drwxr-xr-x`. Если вы изменили права доступа таким образом, обязательно убедитесь, что все файлы внутри каталога имеют права доступа `-rw-------`! Затем, отправьте отчет об этой ошибке разработчикам.

### Конфликты между gnome-keyring и GPG-Agent

Правильность информации, представленной в этой статье или разделе, оспаривается

Причина: Смотрите #GPG AGENT INFO. (обсуждение: Talk:GnuPG (Русский)#)

Хотя Gnome keyring реализует функциональность агента GPG, с версии GnuPG 2.1 переменная `GPG_AGENT_INFO` игнорируется, поэтому Gnome keyring больше не получится использовать в качестве агента GPG.

### mutt и gpg

Если вы хотите, чтобы пароль запрашивался только единожды за один сеанс в новой версии GnuPG 2.1, смотрите эту ветку форума.

### "Потерявшиеся" ключи после обновления до GnuPG 2.1

Если команда `gpg --list-keys` перестала отображать какие-то ключи, а приложения ругаются на отсутствующие/поврежденные ключи, вероятно, какие-то ключи не были сконвертированы в новый формат.

Пожалуйста, прочтите исправление ошибки Invalid packet. Здесь говорится, что существует баг с ключами в старых файлах `pubring.gpg` и `secring.gpg`, которые были заменены файлом `pubring.kbx` и подкаталогом `private-keys-v1.d/`. Потерянные ключи можно восстановить следующими командами:

    $ cd
    $ cp -r .gnupg gnupgOLD
    $ gpg --export-ownertrust > otrust.txt
    $ gpg --import .gnupg/pubring.gpg
    $ gpg --import-ownertrust otrust.txt
    $ gpg --list-keys

### gpg hanged for all keyservers (when trying to receive keys)

If gpg hanged with a certain keyserver when trying to receive keys, you might need to kill dirmngr in order to get access to other keyservers which are actually working, otherwise it might keeping hanging for all of them.

### Smartcard not detected

Your user might not have the permission to access the smartcard which results in a `card error` to be thrown, even though the card is correctly set up and inserted.

One possible solution is to add a new group `scard` including the users who need access to the smartcard.

The factual accuracy of this article or section is disputed.

Reason: Is `MODE="664"` necessary? Assigning a group, `MODE="660"` may be enough? (Discuss in Talk:GnuPG (Русский)#)

Then use an udev rule, similar to the following:

    /etc/udev/rules.d/71-gnupg-ccid.rules

    ACTION=="add", SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="1050", ENV{ID_MODEL_ID}=="0116|0111", MODE="664", GROUP="scard"

One needs to adapt VENDOR and MODEL according to the `lsusb` output, the above example is for a YubikeyNEO.

## Смотрите также

- The GNU Privacy Handbook
- A more comprehensive gpg Tutorial
- GnuPG FAQ — часто задаваемые вопросы о GnuPG
- gpg.conf recommendations and best practices — советы и рекомендации по использованию GnuPG
- Torbirdy gpg.conf

Categories:

- Encryption (Русский)
- Русский