【问题标题】:Using local shell and editor environment over ssh通过 ssh 使用本地 shell 和编辑器环境
【发布时间】:2017-08-14 21:51:50
【问题描述】:

我在一家拥有 500 多台服务器的大公司工作。所有这些服务器都是基于 Linux 的,因此它们使用的是 openssh。客户端也是基于 Linux 的。如果我打开到远程服务器的连接,我会得到一个普通的默认 BASH shell。

如果有一种解决方案可以将我的本地客户端 shell 环境和编辑器配置转发到远程服务器以获得我熟悉的工作环境而无需复制所有内容,我将非常高兴。

谢谢

【问题讨论】:

  • 机器是分开的;你将不得不复制你的配置文件。也就是说,一个好的配置管理工具会让这更容易。
  • ansible可以帮忙复制

标签: bash shell ssh zsh


【解决方案1】:

我只能提供一个非常基本的答案。

这就是说,我想让你自己熟悉一下这个工具ansible

它可以让您留在本地终端/shell 上并轻松地向多个遥控器发送命令,但是,例如,环境变量将需要使用该命令进行定义。

尽管如此,ansible 也使得转移变得容易,例如一个.bash_profile 到许多遥控器。

【讨论】:

    【解决方案2】:

    如果你的登录 shell 是 bash,你可以使用进程替换来远程使用本地 rc 文件。
    无法使用 bashrc 传输源读取的文件,因此需要手动指定。此外,通过创建另一个函数并将本地设置保留在那里,可以在 ssh 目标上使用 vim 等编辑器设置。

    ssh -t user@host '
      bash --rcfile <(
        echo ' $(cat ~/.bashrc ~/.bash_function_etc... | base64 ) ' \
      | base64 -d)'
    

    screenshot

    就我而言,我在own ssh client (lssh) 中使用了这个函数。

    【讨论】:

    • 第一个编写的命令是为 Mac 编写的,所以对于 Linux,您可能需要 base64.base64 -w0 选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 2018-09-29
    • 2013-07-23
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 2016-12-23
    相关资源
    最近更新 更多