ssh到远程服务器时如何使用临时配置文件

Tom*_*Tom 5 linux ssh user-profile roaming-profile

我经常使用 ssh 登录远程服务器,以执行标准的管理工作。我有本地 bashrc/vimrc 和其他各种我希望远程可用的配置文件。通常我只登录一次这些远程服务器,所以我不想在这些盒子上留下我的个人资料的副本,其中一些在客户网站上。

我确实考虑过做一些 hack 让远程服务器挂载一个 fusefs webDAV 或其他一些方式来在会话期间将远程文件系统挂载到远程服务器。然而,如果远程系统没有必要的包,或者被防火墙关闭,这就会出现问题。

这个问题有什么好的解决方案可以跨发行版兼容,以及最新的fedora/RHEL/ubuntu/debian/CentOS,并且不会干扰或减慢登录过程?

[编辑]

我想其他考虑因素之一是我可能正在使用其他人的用户帐户登录,所以我不想对配置文件进行任何持久更改。理想情况下,我只会为会话使用一些临时配置文件,然后在注销时将其丢弃。这可能是在一个棍子领土上进入月球;-)

lun*_*chs 5

您可以ssh -t先运行安装脚本,然后运行 ​​shell,然后运行清理脚本。ssh -t允许你运行命令,但仍然在中间运行一个或多个 shell 并正确分配一个终端

您的设置脚本可以包含 wget'ing/curl'ing/scp'ing 一个临时主目录到类似的东西$HOME/tmphome,然后运行这样的脚本以在那里启动一个 shell:

#!/bin/sh

HOME="$HOME/tmphome"
cd "$HOME"
bash --login
Run Code Online (Sandbox Code Playgroud)

这应该可以很好地将 rc 文件隔离到 tmphome,并且 ssh -t 将跳过用户的 bashrc。只要您的环境是轻量级的,复制就不需要很长时间。

您的命令可能类似于 ssh -t user@host 'wget http://server/tmphome.tar.gz && tar -zxvf tmphome.tar.gz && rm tmphome.tar.gz && tmphome/shell.sh'