linux – ssh配置文件环境变量?

前端之家收集整理的这篇文章主要介绍了linux – ssh配置文件环境变量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在管理工作期间登录几个远程ssh服务器.我在三个不同的计算机客户端工作,所有这些都是Debian GNU / Linux系统.我保留了一个工作区目录,在那里我放置了完成工作所需的所有内容,该目录包含一个bashrc文件和一个ssh_config文件.

当我移动并开始使用不同的客户端时,我手动将该目录内容与使用rsync从一台客户端计算机到其他客户端计算机的脚本同步.

三个客户端中的每个客户端上的本地用户需要最少的配置,因此,如果我需要创建新的本地用户或重新安装客户端,我只需要rsync工作区并添加对我的自定义工作区/ bashrc的引用用户的$HOME / .bashrc.我的自定义工作区/ bashrc创建了几个别名,无论我使用的是哪个客户端,我都会得到通常的环境.

我的自定义工作区/ bashrc以这种方式创建别名以连接到远程服务器:

alias s1='ssh -F ~/workspace/etc/ssh_config server1.example.com'

我只需在任何客户端的终端中键入s1即可登录server1,因为我的自定义ssh_config设置了所需的公钥认证选项,正确的端口server1正在侦听和正确的用户.

现在这就像魅力,只要ssh命令是我需要的.不幸的是,只要我需要另一个命令反过来使用ssh,事情就会变得更加混乱.

例如.如果我需要rsync任何东西到其中一个服务器,我被迫编写整个ssh命令:

rsync -Pavz --delete -e "ssh -F $HOME/workspace/etc/ssh_config" ...

其他命令也会发生类似的事情,例如scp,ssh-copy-id和其他命令.

我想能写

rsync -Pavz --delete -e "ssh" ...

相反,并让ssh从环境变量中获取配置文件名,这样我就可以在我的bashrc中设置该环境变量,并且每个ssh调用都会自动运行.

是否有这样的环境变量或是否有不同的问题解决方案?

解决方法

这有点滥用整个概念并将工具扭曲到您的特定用例.您应该使用它们应该使用的工具.默认情况下,配置文件位于〜/ .ssh / config中.

>为什么不在所有三台计算机上创建一个符号链接到你的〜/ workspace / etc / ssh_config,使它开箱即用,没有全部解决方法
>从OpenSSH 7.3开始,您可以使用Include指令实现相同的无符号链接(因此,如果需要,您可以在某些主机上使用不同的配置).
>在/ etc / ssh / ssh_config中使用系统范围的配置可以完成同样的技巧.

正如您已经拥有的……添加对我的自定义bashrc的引用…您可以在工作区的某些脚本中同时修改.ssh / config.

猜你在找的Linux相关文章