Dan*_*Tao 17 linux ubuntu ubuntu-11.10
我有 Windows、Mac 和 Linux 计算机;但目前我只能通过 Windows 和 Mac 机器连接到我公司的一些网站,因为它们是唯一具有 RSA SecurID 软件令牌的网站。我很好奇:是否可以设置 SecurID 软件令牌以在 Linux 系统(在我的情况下是 Ubuntu)上工作?
小智 9
就我个人而言,我懒得拿起手机,打开 RSA 应用程序,输入我的 PIN,然后在登录页面中输入。我也不喜欢和 Wine 打交道。因此,相反,我为这个问题创建了一个完全疯狂的解决方案。我编写了一个脚本,可以通过 SSH 连接到 Windows 机器,启动 RSA 应用程序,输入您的 PIN,复制结果,然后将其放入本地 Linux 机器的剪贴板中。为此,您需要一台安装了 RSA 软件的 Windows 机器,您可以通过 SSH 访问该机器。我在 Windows 中使用freesshd作为 SSH 服务器。您还需要AutoHotKey和PsExec。
在 Windows 机器上编译以下 AHK 脚本(我将生成的 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%
Run Code Online (Sandbox Code Playgroud)
然后在 Linux 端使用以下 shell 脚本:
#!/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"
Run Code Online (Sandbox Code Playgroud)
当脚本完成与 Windows 机器的对话后,它会将密码放入剪贴板并弹出一个小通知。所以基本上你按下一个按钮,等待几秒钟,然后你就可以粘贴密码了。
希望有帮助。
归档时间: |
|
查看次数: |
42570 次 |
最近记录: |