Особисто мені дуже лінь підняти телефон, відкрити додаток RSA, ввести свій PIN-код та ввести його на сторінку входу. Я також не люблю спілкуватися з Вином. Отже, натомість я створив цілком божевільне рішення цієї проблеми. Я написав сценарій, який дозволить SSH в машину Windows, запустить додаток RSA, введете свій PIN-код, скопіюйте результат та помістіть його в буфер обміну вашої локальної машини Linux. Для цього вам потрібна машина Windows, до якої ви можете отримати доступ через SSH із встановленим програмним забезпеченням RSA. Я використовував freesshd як SSH-сервер у Windows. Вам також знадобляться AutoHotKey та PsExec .
Скомпілюйте наступний скрипт AHK на машині Windows (я ставлю отриманий exe на 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, він помістить пароль у буфер обміну і спливає невелике повідомлення. Тому в основному ви натискаєте кнопку, зачекаєте пару секунд, і вуаля ви зможете вставити пароль.
Сподіваюся, що це допомагає.