Linux 任何点文件的类似ssh代理的行为
我正在尝试构建(或者找到它是否存在)一些东西,让我能够将我的dotfiles带到我访问的服务器,就像ssh代理为我的密钥所做的那样 我花了很多时间使用EC2工作,当我启动一个新实例时,我不喜欢没有我的点文件(.vimrc、.gitconfig和我的别名) 我将所有的点文件都保存在git下,并且是公开的,但这还不够解决方案,原因如下:Linux 任何点文件的类似ssh代理的行为,linux,ssh,dotfiles,Linux,Ssh,Dotfiles,我正在尝试构建(或者找到它是否存在)一些东西,让我能够将我的dotfiles带到我访问的服务器,就像ssh代理为我的密钥所做的那样 我花了很多时间使用EC2工作,当我启动一个新实例时,我不喜欢没有我的点文件(.vimrc、.gitconfig和我的别名) 我将所有的点文件都保存在git下,并且是公开的,但这还不够解决方案,原因如下: 我使用ssh连接到无法安装git且无法轻松访问internet的生产主机 我不控制我们运行的AMI,因此我不能在其中烘焙我的点文件,而且我通常共享ubuntu或ro
ssh-t-r1234:localhost:1234user@server'导出使用\u DOTFILES\u AGENT=1;exec$SHELL'
我的本地主机上的1234上的点文件提供了服务,所以我的问题是:
让位于删除端的程序从套接字读取其点文件的最佳方法是什么(很乐意将任何必要的东西放在另一端)
编辑:虽然阿普马塞尔的回答很有帮助,但我并没有想到这样一个高科技解决方案。可能是沿着wget的线路从该端口进入/tmp/_vimrc,然后让vim以某种方式加载该端口(通过运行
别名vim=vim
)。SSH在处理任何文件时都没有什么特别的作用。SSH代理能够从该点文件工作,因为SSH
二进制文件知道试图通过$SSH\u AUTH\u SOCK
中的命名管道集打开到代理的连接,并且因为SSH客户端和服务器可以同意代理该请求
简单地说,其他没有任何内置逻辑的程序无法做到这一点。他们没有办法知道不应该对文件执行标准的打开操作
如果您真的非常想,您可以创建一个$LD_PRELOAD
'ed库,覆盖打开
,以检查文件是否可用,并尝试模拟对文件的访问,很多情况下,ALSA可以假装为不知道ALSA的程序提供OSS支持,方法是阻止它们尝试打开/dev/dsp
,然后将请求转换到ALSA音频层
编写这样一段代码是非常棘手的,因为它需要正确地模拟本地系统的行为。例如,当一个程序编写时,你会做什么?如果连接断开,你怎么办?当您分叉一个守护进程时会发生什么?根据设计,可能会有很多延迟