cYr*_*rus 18
在每台远程机器上上传一个文件,比如~/.my_custom_bashrc,使用您的自定义bash配置,(在这种情况下PS1=...)然后启动ssh:
ssh user@host -t "bash --rcfile ~/.my_custom_bashrc -i"
Run Code Online (Sandbox Code Playgroud)
您可以轻松地将bash函数用作包装器以提高可读性。
Gil*_*il' 10
如果您只想发送PS1变量,并且它不包含'(单引号),请尝试:
ssh targethost -t "PS1='$PS1'; exec bash"
Run Code Online (Sandbox Code Playgroud)
本地.bashrc可能会覆盖PS1(感谢丹尼斯威廉姆森指出这一点)。
有一些方法可以通过 ssh 传输环境变量,但它们通常在服务器配置中被禁用。如果PermitUserEnvironment在服务器配置中启用了该指令并且每个用户都有自己的密钥对(是的,您可能没有那么幸运),您可以添加environment="PS1=…"到~/.ssh/authorized_keys与您的密钥相对应的行中。
如果您想在共享用户帐户上保留自己的配置,您可以创建自己的配置文件目录并将HOME环境变量设置为指向该目录。
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
Run Code Online (Sandbox Code Playgroud)
mrstatic.home当您想与其他用户共享文件时,在目录中创建指向父目录中相应条目的符号链接。
然后,登录
ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`
Run Code Online (Sandbox Code Playgroud)
如果您愿意修改遥控器.profile(或其他初始化文件),您可以自动设置。许多站点允许LC_*环境变量通过(通常它们用于区域设置)。如果这两个条件都满足,您可以设置一个实际上不用于语言环境的变量,例如LC_USER,在客户端,并在服务器中测试它.profile。
(当然共享帐户是一个坏主意,但我意识到您可能无法改变这种情况。)