▍YubiKey 5C Nano¶
Настройка 2FA TOTP для подключения к серверу по SSH в MacOS¶
Для начала проверим есть ли поддержка ключей sk-ssh-ed25519
:
daffin@MacBook-Air-Aleksej .ssh % ssh -Q key|grep ^sk
[email protected]
[email protected]
[email protected]
[email protected]
Для использования с ключом безопасности ssh-agent должен быть версии 8.2, которого нет в системе по умолчанию.
Сначала отключите ssh-агент, который есть в macOS по умолчанию для вашего пользователя.
Затем добавьте новый сервис launchd для вашего ssh-агента, создав новый файл ~/Library/LaunchAgents/com.zerowidth.launched.ssh_agent.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.zerowidth.launched.ssh_agent</string>
<key>ProgramArguments</key>
<array>
<string>sh</string>
<string>-c</string>
<string>/opt/homebrew/bin/ssh-agent -D -a ~/.ssh/agent -P /opt/homebrew/lib/*,/opt/homebrew/Cellar/opensc/*/lib/*.so</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Далее в одном из файлов .bashrc
или .zshrc
, необходимо прописать
Зададим FIDO2 PIN в YubiKey Manager
Генерируем ключи
Добавляем ключи, теперь будет запрос на подтверждение (прикоснуться к ключу).
% ssh-add -K
Enter PIN for authenticator:
Resident identity added: ED25519-SK SHA256:CPM0000000000000000000000000000w8
Выгружаем ключи из YubiKey. Кстати, файлы, которые генерирует YubiKey, представляют собой открытый ключ и специальную ссылку на закрытый ключ, а не сам закрытый ключ. Материал закрытого ключа хранится в элементе tokens secure и используется только при аутентификации по ssh (именно поэтому вам нужно подключить свой токен при попытке входа в удаленную систему с помощью FIDO).
daffin@MacBook-Air-Aleksej .ssh % ssh-keygen -K
Enter PIN for authenticator:
You may need to touch your authenticator to authorize key download.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Saved ED25519-SK key ssh:mgr to id_ed25519_sk_rk_mgr
Файл mgr
теперь необходимо убрать в труднодоступное место. Он пригодится, если донгл YubiKey будет утерян, тогда с помощью этого приватного ключа можно будет подключиться к серверу.
daffin@MacBook-Air-Aleksej .ssh % ls -la
total 48
drwx------ 8 daffin staff 256 23 май 10:06 .
drwxr-x---+ 22 daffin staff 704 22 май 17:25 ..
-rw------- 1 daffin staff 456 23 май 10:06 id_ed25519_sk_rk_mgr
-rw-r--r-- 1 daffin staff 140 23 май 10:06 id_ed25519_sk_rk_mgr.pub
-rw------- 1 daffin staff 1102 23 май 09:59 known_hosts
-rw------- 1 daffin staff 928 23 май 09:59 known_hosts.old
-rw------- 1 daffin staff 488 22 май 17:43 mgr
-rw-r--r-- 1 daffin staff 165 22 май 17:43 mgr.pub
Чтобы использовать SSH-ключ на новом компьютере, убедитесь, что у вас запущен ssh-агент, и просто запустите:
Это загрузит "дескриптор ключа” в SSH-агент и сделает ключ доступным для использования на новом компьютере, и вы сможете немедленно подключаться к серверам. Это отлично работает для коротких посещений, но это не будет длиться вечно – вам нужно будет снова запустить ssh-add, например, при перезагрузке компьютера. Чтобы импортировать ключ постоянно, вместо этого запустите:
При этом в текущий каталог будут записаны два файла.