我正在尝试构建(或查找它是否存在)一些东西,它可以让我将我的点文件带到我访问的服务器,就像 ssh-agent 为我的密钥所做的那样。
我花了很多时间在 EC2 上工作,当我启动一个新实例时,我不喜欢没有我的点文件(主要是 .vimrc、.gitconfig 和我的别名)。
我将所有 dotfiles 都保存在 git 下并且是公开可用的,但这还不足以解决问题,原因如下:
- 我通过 ssh 连接到无法安装 git 且无法轻松访问 Internet 的生产主机。
- 我不控制我们运行的 AMI,因此我无法将我的点文件放入其中,而且我通常共享 ubuntu 或 root 用户,并且很少在主机上拥有专用的用户名(所以我不能只是克隆并将我的点文件留在那里)。
现在我很高兴将其构建为仅使用一个级别的 ssh。那是 A -> B -> C (如果只有 B 可以访问点文件并且 C 丢失它们就可以了)。
我正在考虑类似的事情:
ssh -t -R 1234:localhost:1234 user@server 'export USE_DOTFILES_AGENT=1 ; exec $SHELL'
在我的本地主机上为 1234 上的点文件提供服务,所以我的问题是:
使删除端的程序从套接字读取其点文件的最佳方法是什么(很高兴将任何必要的东西放在另一端)。
编辑:虽然 apmasell 的回答很有帮助,但我并没有想到这样的高科技解决方案。可能更多的东西沿着 wget 从那个端口到 /tmp/_vimrc 然后让 vim 以某种方式加载它(通过运行alias vim=vim <flag for where to find vimrc>
)。