我有多个需要远程访问的服务器。我更喜欢使用 Cygwin 而不是 Putty。
无论如何 - 打开我酷炫的 Mintty 窗口然后输入以下命令的过程太长了。PS - 我正在对这些服务器使用“密钥”身份验证。
首先,我双击 Windows 桌面上的 Cygwin 终端快捷方式。
然后,一旦终端会话启动,我就从命令提示符中输入以下内容 -
$ eval `ssh-agent`
$ ssh-add
$ ssh <username>@<servername>
请记住,我的“服务器名称”是可变的。事实上,我有大约 10 个不同的服务器名称可以插入那里 - 因此我需要 10 个不同的快捷方式。我更喜欢双击桌面上的某个东西来启动我的 Mintty 并自动执行上述 bash shell 命令。
有没有人有或者可以推荐一个好的/优雅的解决方案来做到这一点?
答案1
您需要创建一个 shell 脚本,然后有一个调用它的 mintty 快捷方式。首先,脚本:
#!/bin/bash
eval `ssh-agent`
ssh-add
read -p "Username: "
username=$REPLY
read -p "Host: "
host=$REPLY
ssh $username@$host
eval `ssh-agent -k`
将其保存为:~/bin/CygwinMinttySsh.sh
确保脚本可执行:chmod a+rx ~/bin/CygwinMinttySsh.sh
然后创建一个新的快捷方式到C:\cygwin\bin\mintty.exe,然后右键点击它并选择“属性”,并将目标更改为:
C:\cygwin\bin\mintty.exe -e /bin/sh -l -c '$HOME/bin/CygwinMinttySsh.sh'
答案2
实际上,有几种方法可以做到这一点。如果您确实需要在执行之前运行列出的命令ssh
,那么请将这些命令放入myssh
cygwin 主目录中名为的文件中。
eval `ssh-agent`
ssh-add
ssh <username>@$1
显然,请将您想要使用的用户名放在您有的位置<username>
。
然后您可以使用以下命令运行它:
c:\cygwin\bin\bash --login myssh <servername>
您当然可以将其放入 BAT 文件中。