Cá nhân tôi quá lười nhấc điện thoại, mở ứng dụng RSA, nhập mã PIN và sau đó nhập nó vào trang đăng nhập. Tôi cũng không thích giao dịch với Wine. Vì vậy, thay vào đó, tôi đã tạo ra một giải pháp hoàn toàn điên rồ cho vấn đề này. Tôi đã viết một tập lệnh sẽ SSH vào máy Windows, khởi chạy ứng dụng RSA, nhập mã PIN của bạn, sao chép kết quả và đặt nó vào bảng tạm của máy Linux cục bộ của bạn. Để làm điều này, bạn cần một máy Windows mà bạn có thể truy cập thông qua SSH với phần mềm RSA được cài đặt. Tôi đã sử dụng freesshd làm máy chủ SSH trong Windows. Bạn cũng sẽ cần AutoHotKey và PsExec .
Biên dịch tập lệnh AHK sau trên máy Windows (Tôi đặt exe kết quả tại C: \ Chương trình tập tin \ RSA Mã thông báo phần mềm SecurID \ 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%
Sau đó sử dụng tập lệnh shell sau đây về phía 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"
Khi đoạn script được nói xong với máy Windows, nó sẽ đặt mật mã vào bảng tạm của bạn và bật lên một thông báo nhỏ. Vì vậy, về cơ bản, bạn nhấn một nút, chờ vài giây và voila bạn có thể dán mật mã.
Mong rằng sẽ giúp.