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

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

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

答案1

Linux 上没有 RSA 软件令牌,因此你需要使用葡萄酒(或者在虚拟机中运行 Windows)。有一个线程这里其中 Wine 版本和 RSA Software 版本详细说明已发现可以正常工作。

另一种选择是获取基于手机的令牌,这样您就不必依赖特定的桌面和 Wine 的不稳定性。大多数手机平台都受支持。

答案2

Ubuntu 的最新版本提供了令牌包,一个本机开源 SecurID 实现,包括 CLI、GTK+ GUI 和库 API。

更多信息请参阅项目主页

答案3

就我个人而言,我太懒了,不愿意拿起手机,打开 RSA 应用程序,输入我的 PIN,然后将其输入到登录页面。我也不喜欢处理 Wine。因此,我为这个问题创建了一个完全疯狂的解决方案。我编写了一个脚本,它将通过 SSH 进入 Windows 计算机,启动 RSA 应用程序,输入您的 PIN,复制结果,并将其放入本地 Linux 计算机的剪贴板中。要做到这一点,您需要一台可以通过 SSH 访问的 Windows 计算机,并且安装了 RSA 软件。我使用了自由软件作为 Windows 中的 SSH 服务器。您还需要自动热键执行程序

在 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%

然后在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"

当脚本与 Windows 计算机通信完毕后,它会将密码放入剪贴板并弹出一个小通知。基本上,你只需按下按钮,等待几秒钟,然后就可以粘贴密码了。

希望有所帮助。

答案4

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

相关内容