我跑步时
ssh user1@server1 'ssh user2@server2'
我可以登录,但是我的rc文件无法加载。即使当我source .zshrc
时,我仍然有一个空白提示并且没有颜色。我什至尝试使用exec zsh
和exec bash
作为后备,但没有任何变化。这是怎么回事,我该如何解决?
答案 0 :(得分:1)
首先不要这样做。相反,请使用ssh内置的ProxyJump
支持:
ssh -o 'ProxyJump user1@server1' user2@server2
您甚至可以通过将以下内容放入server2
文件中来自动实现到~/.ssh/config
的所有连接:
Host server2
ProxyJump user1@server1
一些行为在起作用:
ssh
传递命令时,默认情况下不会创建TTY(除非传递了-t
或-tt
)。这会影响任何被调用程序操纵终端设置的能力。 isatty(0)
还是进行“上午互动”的常规方式。校验。如果没有将Shell的stdin附加到TTY,则这是它可以确定其不是交互式的一种方式。"$SHELL" -c "command"
启动时-就像ssh
在传递命令运行时一样-它不会以交互方式运行,因此不会强制{{1} }文件(明确供交互式使用)。