我正在寻找一个像 terraterm 一样工作的 ssh 客户端,并且有一个菜单,我可以在其中存储我想要访问的所有 ssh 服务器的凭据。我登录的一些服务器有 50 多个字符的密码,不可能记住。
我在网上找到了 Terra 术语菜单的屏幕截图:
这就是我哭泣的原因。
你有什么提示吗?
我sshmenu
找到了apt
但它在启动时崩溃了:
christian@christian:~$ sshmenu
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- sshmenu (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/bin/sshmenu:3:in `<main>'
答案1
坏消息是,没有 Linux 版本的 Tera Term,并且 SSHMenu 无法使用(从 Ubuntu 11.04 - Natty Narwhal 开始)。
好消息是,您可以使用已经安装的gnome 终端来实现你的愿望。是的,Ubuntu 中的默认终端。
您必须为想要连接的每个服务器创建一个配置文件。
首先你需要安装sshpass
- 如果你尚未安装非交互式 ssh 密码验证工具:
sudo apt-get install sshpass
现在我将向您展示一个示例,说明如何为将通过 ssh 连接的一台服务器创建配置文件:
- 打开终端并点击文件→新的配置文件。
- 输入配置文件名称对于您想要连接的服务器等配置文件。
- 点击后创造会弹出一个新窗口;转到头衔和命令标签。
- 勾选启动命令时更新登录记录。
- 勾选运行自定义命令而不是我的 shell。
在里面自定义命令框中添加类似以下内容的内容:
sshpass -p "password" ssh user@hostname
关闭。
从现在起,当你从 cat 打开新窗口或新选项卡时,cat 会自动通过 gnome-terminal 的 ssh 连接到所需的服务器。文件菜单:
谢谢還是为了这个帖子我从哪里受到启发。
答案2
我强烈建议使用更安全、加密的解决方案。准备一个文件,例如,mysshcmds
包含以下内容:
sshpass -p "test1" ssh user@host1
sshpass -p "test2" ssh user@host2
sshpass -p "test3" ssh user@host3
(每行一个命令)。然后使用以下命令进行加密gpg
:
gpg -c mysshcmds
系统会要求您输入密码(两次)。现在它将创建一个加密文件mysshcmds.gpg
。删除纯文本文件。
要使用它,您可以发出以下命令:
gpg -d mysshcmds.gpg 2> /dev/null | grep host1
这将打印清楚的行:
sshpass -p "test1" ssh user@host1
您可以复制并粘贴,甚至可以
$(gpg -d mysshcmds.gpg 2> /dev/null | grep host1)
它将立即发出命令。或者您可以轻松地围绕它编写脚本。这样您的计算机中就不会存储任何明文密码。
请注意,2> /dev/null
这里是为了让其保持gpg
沉默...如果你愿意,你可以避免它。