У меня есть компьютеры с Windows, Mac и Linux; но в настоящее время я могу подключаться к некоторым веб-сайтам моей компании только через компьютеры под управлением Windows и Mac, поскольку они являются единственными, использующими программные токены RSA SecurID. Мне любопытно: возможно ли настроить программный токен SecurID для работы в системе Linux (в моем случае, Ubuntu)?
4 ответа
В последних версиях Ubuntu предлагается пакет stoken, собственная реализация SecurID с открытым исходным кодом, которая включает в себя CLI, GTK+ GUI и библиотечный API.
Для получения дополнительной информации посетите домашнюю страницу проекта.
Лично мне лень взять телефон, открыть приложение RSA, ввести мой PIN-код, а затем ввести его на странице входа. Я также не люблю иметь дело с вином. Так что вместо этого я создал совершенно безумное решение этой проблемы. Я написал скрипт, который подключит SSH к машине с Windows, запустит приложение RSA, введет ваш PIN-код, скопирует результат и поместит его в буфер обмена вашего локального компьютера с Linux. Для этого вам нужен компьютер с Windows, к которому вы можете получить доступ через SSH с установленным программным обеспечением RSA. Я использовал freesshd в качестве SSH-сервера в Windows. Вам также понадобятся AutoHotKey и PsExec.
Скомпилируйте следующий скрипт AHK на компьютере с Windows (я поместил полученный файл в папку C:\Program Files\RSA SecurID Software Token\rsa-securid.exe):
TokenName = %1%
Pin = %2%
Run, "C:\Program Files\RSA SecurID Software Token\SecurID.exe"
WinWait, %TokenName% - RSA SecurID Token,
IfWinNotActive, %TokenName% - RSA SecurID Token, , WinActivate, %TokenName% - RSA SecurID Token,
WinWaitActive, %TokenName% - RSA SecurID Token,
Send, %Pin%
Sleep, 100
Send, {Enter}
Sleep, 100
Send, ^c
Passcode = %Clipboard%
Sleep, 100
Send, {AltDown}{F4}{AltUp}
ExitApp %Passcode%
Затем используйте следующий скрипт на стороне Linux:
#!/bin/bash
NAME=<the rsa token name>
PIN=<your pin>
HOST=<windows host>
USER=<windows user>
PASSWORD=<windows password>
SESSION=1
PASSCODE=$(ssh $HOST "cmd /c \"C:\Program Files (x86)\Sysinternals\PsExec.exe\" /accepteula \\\127.0.0.1 -u $USER -p $PASSWORD -i $SESSION C:\\PROGRA~1\\RSASEC~1\\rsa-securid.exe $NAME $PIN" | grep "error code" | sed "s/.*error code \([0-9]*\).*/\1/")
echo -n $PASSCODE | xclip -selection clipboard -in
notify-send --hint=int:transient:1 -i "rsa-securid.png" "Passcode: $PASSCODE"
Когда скрипт завершит разговор с машиной Windows, он поместит код-пароль в буфер обмена и высветит небольшое уведомление. Таким образом, в основном вы нажимаете кнопку, ждете пару секунд, и вуаля, вы можете вставить пароль.
Надеюсь, это поможет.
Для Linux нет токена программного обеспечения RSA, поэтому вам нужно будет использовать Wine (или запускать windows на виртуальной машине). Существует поток здесь , где версия Wine и версия RSA Software детальнее , который был найден на работу.
Другой альтернативой может быть получение токена на основе телефона, чтобы вы не зависели от конкретного рабочего стола и от слабости вина. Большинство телефонных платформ поддерживаются.
Я создал скрипт для генерации пароля из командной строки, поэтому мне не нужно иметь дело с приложением Windows. Он в основном запускает wine в фоновом режиме, захватывает вывод и выводит его на консоль.