使用sshlogin到多个Linux服务器

我有一个本地的Windows机器,我通过腻子连接到本地的Linux机器,我将不得不通过sudo使用sshlogin到多个linux服务器。

我想知道是否有一个Windows .bat脚本,这将帮助我完成这个任务。

我通常login到服务器,如下所示:

#ssh [email protected] -v -p2345 #sudo su - 

我无法从ServerFault中find任何链接,以实现自动化。 不知道是否忽视或错过了一些.. 🙂

请让我知道是否有人会这样做,如果是的话(如果有人可以提供给我的.bat脚本,将不胜感激)。

干杯

如果在login的每个系统上都需要执行某些操作,则可以configuration和分发一个.bashrc来自动执行login任务。

也就是说,不要自动化sudo-root。 你正在向自己施加上帝的力量; 你至less应该input一个密码来提醒你要小心。 这是一个最好的做法,在我们的商店一个政策,你永远不会追求根源; 你需要做的每件事都应该通过个别的sudo命令来处理。 这样你只需要访问权限, 所有的特权行动都logging下来,sudo提供,提高安全性,偶尔回答“这个系统到底发生了什么?

你想重复运行同一组操作吗? 您可能需要查看Fabric ,这是一个非常酷的Python库,可以通过SSH进入额外的距离,并在计算机上反复运行垃圾。 否则,如果你只是想用sshlogin提示一大堆提示,我会build议如下。

  1. 设置SSH密钥(我认为这是你可以访问)。 这是我用PuTTY解释的最简单的教程 。

  2. 像这样设置一个batch file。 你可以使用PuTTY,如果你对此很冷静,就把中间人剪掉。 (警告:这只是一个粗略的猜测,在我面前没有Windows电脑,但过去做过这样的事情。)

    SET PAGEANT = C:\ path \ to \ pageant.exe

    SET PUTTY = C:\ path \ to \ putty.exe

    SET PUTTYPRIVKEY = C:\ path \ to \ priv \ key.ppk

    SET USER = someuser

    SET RPORT = 2345

    SET HOSTS = 141.161.1.1 141.161.1.2 141.161.1.3 host1.example.com host2.example.com

    REM#激活私钥,假定您明智地进行了密码保护。

    “%PAGEANT%”“%PUTTYPRIVKEY%”

    FOR%H(%HOSTS%)do(

    回声。

    ECHO尝试SSH到主机%% H。 。 。

    回声。

    START“%PUTTY%”-ssh %% H:%RPORT%-2 -l%USER%-i“%PUTTYPRIVKEY%”

PuTTY的-m参数也是可能的,根据文档 ,一旦validation就运行对远程主机的脚本。 使用正确的密钥和代理转发( -a-A ;问你是否不知道),这可能会让你下降到一个button或点击。

这不完全是你要求的,但GNU屏幕是非常有用的pipe理多个服务器: http : //www.gnu.org/software/screen/

要启动或重新连接到某个屏幕会话时,您可以执行此操作:

 ssh user@host screen -RD 

或者在连接后运行“screen -RD”。 做任何你需要做的事情,然后注销,而不是从屏幕会话中“分离”(Ctr-a d),或者closuresterminal窗口。 下一次你用屏幕ssh,你会马上回到你离开的地方。

在屏幕上的一些更多的信息,无可否认,可以有一些混淆开始: