我可以在 Ubuntu Linux 上使用 RSA SecurID 软件令牌吗?

Dan*_*Tao 17 linux ubuntu ubuntu-11.10

我有 Windows、Mac 和 Linux 计算机;但目前我只能通过 Windows 和 Mac 机器连接到我公司的一些网站,因为它们是唯一具有 RSA SecurID 软件令牌的网站。我很好奇:是否可以设置 SecurID 软件令牌以在 Linux 系统(在我的情况下是 Ubuntu)上工作?

小智 19

最新版本的 Ubuntu 提供了stoken 包,这是一个原生的开源 SecurID 实现,包括一个 CLI、一个 GTK+ GUI 和一个库 API。

有关更多信息,请参阅项目主页


Pau*_*aul 9

没有用于 linux 的 RSA 软件令牌,因此您需要使用Wine(或在虚拟机中运行 Windows)。这里有一个线程其中详细介绍了 Wine 版本和 RSA 软件版本,这些版本已被发现有效。

另一种选择是获得基于手机的令牌,这样您就不必依赖特定的桌面和葡萄酒的稀薄性。支持大多数电话平台。

  • 基于电话的解决方案一直在我面前,我太愚蠢了,没有注意到! (2认同)

小智 9

就我个人而言,我懒得拿起手机,打开 RSA 应用程序,输入我的 PIN,然后在登录页面中输入。我也不喜欢和 Wine 打交道。因此,相反,我为这个问题创建了一个完全疯狂的解决方案。我编写了一个脚本,可以通过 SSH 连接到 Windows 机器,启动 RSA 应用程序,输入您的 PIN,复制结果,然后将其放入本地 Linux 机器的剪贴板中。为此,您需要一台安装了 RSA 软件的 Windows 机器,您可以通过 SSH 访问该机器。我在 Windows 中使用freesshd作为 SSH 服务器。您还需要AutoHotKeyPsExec

在 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 机器的对话后,它会将密码放入剪贴板并弹出一个小通知。所以基本上你按下一个按钮,等待几秒钟,然后你就可以粘贴密码了。

希望有帮助。


小智 5

我已经为自己编写了一个脚本来从命令行生成密码,因此我不必处理 Windows 应用程序。它基本上在后台运行 wine,抓取输出并将其打印到控制台。