Я управляю сервером с двухфакторной аутентификацией. Мне нужно использовать приложение Google Authenticator для iPhone, чтобы получить 6-значный проверочный код, который нужно ввести после ввода обычного пароля сервера. Настройка описана здесь: http://www.mnxsolutions.com/security/two-factor-ssh-with-google-authenticator.html
Мне нужен способ получить проверочный код, используя только свой ноутбук, а не свой iphone. Должен быть способ запустить приложение командной строки, которое генерирует эти коды подтверждения и дает вам код для текущего 30-секундного окна.
Есть ли программа, которая может это сделать?
Да, oathtool
может это сделать. Вам нужно будет засеять его общим секретом вашего сервера.
Вы можете установить его из oath-toolkit
пакет.
На github также есть реализация go по адресу https://github.com/pcarrier/gauth
Здесь используется файл конфигурации ~/.config/gauth.csv
для хранения токенов в следующем формате
me@gmail.com: abcd efg hijk lmno
aws-account: mygauthtoken
И вывод тоже довольно дружелюбный:
$ gauth
prev curr next
AWS 315306 135387 483601
Airbnb 563728 339206 904549
Google 453564 477615 356846
Github 911264 548790 784099
[======= ]
Существует множество сторонних реализаций аутентификатора. Ознакомьтесь со списком на википедия страница. Например, вы можете использовать onetimepass (который написан на Python) для использования в командной строке.
Насколько мне известно, Google выпускает приложение Authenticator только для телефонов (iOS, Android).
(Это создает проблему для таких параноиков, как я, которые на самом деле не доверяют истории прекращения предоставления услуг Google с небольшим уведомлением и предпочитают генератор токенов, который мы можем видеть внутри.)
Вы можете рассмотреть другие альтернативы, например система одноразовых паролей.
Честно говоря, получение кода подтверждения с вашего ноутбука как бы побеждает аспект двухфакторной аутентификации (у любого, кто снимает ноутбук, теперь есть генератор кода - это часть того, от чего должен защищать Authenticator).
Вы могли бы попробовать http://soundly.me/oathplus
Это инструмент, который я разработал поверх почтенного oathtool
, который позволяет читать QR-коды и хранить информацию об учетной записи OTP для дальнейшего использования. Вы можете думать об этом как Google Authenticator для командной строки, поскольку он может загружать и читать QR-коды, а также использовать otpauth://
URI. (OSX только атм.)
Если вы используете python, в pip доступны пакеты с интерфейсами CLI.
Вот хакерский: https://github.com/bjurga/DeOtp
Это полосатый GoogleAuthenticator с хорошей идеей «интеграции с Windows». Проект git очень новый и, очевидно, требует косметических улучшений, но пока он работает нормально.
A windows commandline gauth.exe is here https://github.com/moshahmed/gauth/
fork of https://github.com/pcarrier/gauth to compile on windows7.
$ cd ~/.ssh
$ cat gauth.mfa
test,ABC
# Encrypt gauth.mfa to gauth.ssl
$ openssl enc -aes-128-cbc -md sha256 -in gauth.mfa -out gauth.ssl
password=xxx
# Decrypt gauth.ssl and edit gauth.mfa
$ openssl enc -aes-128-cbc -md sha256 -d -in gauth.ssl -out gauth.mfa
password=xxx
# Get the 2fa code
$ go run gauth.go [tes] [$HOME/.ssh/gauth.ssl]
| pass:xxx
| 2FA Name
| 129079 test
# Print qrcode.txt on console as scan able image
$ pip install qrcode
$ qr "otpauth://totp/Example:mosh@mosh.com?secret=XYZ&issuer=SOMEONE"
[qrcode printed on Console]
# Convert text to png image, from https://github.com/miyako/console-qrencode
$ waqrencode -t png -i mfa.txt -o mfa.png
# Convert qrcode.jpg image to string
$ zbarimg qrcode.jpg