从终端使用 ssh 时如何识别您在哪个服务器上?
我每天必须通过 ssh 连接到 30 个服务器,并不断在它们之间切换。
目前我正在编辑选项卡名称并编写 IP 地址以从一个跳转到另一个。
是否有自动执行此操作的方法(将服务器 IP 地址分配为选项卡名称)?任何其他不涉及在每个服务器上编辑文件的替代方案?
mur*_*uru 11
我通常使用主机名,通过$PS1. 但是,如果您不嫌麻烦,您可以开始使用 GNU screen,然后您可以像这样定义一个函数:
function ssh-title () {
host="${@: -1}" # You could customize it to make it identify the hostname better
IP=$(host "$host" | awk '/has address/ { print $4 }')
echo -ne '\033]0;'"$host"' - '"$IP"'\007'
screen ssh "$@"
}
Run Code Online (Sandbox Code Playgroud)
解释:
screen不直接让远程 shell 执行此操作,您必须对其进行自定义以允许它执行此操作,从而使您可以更轻松地在本地设置标题并坚持使用。echo。您可能也必须这样做。screen启动会话ssh。当命令退出时会话结束。您可以通过多种方式对其进行自定义。例如,您可以将主机名和 IP 保存在一个文件中并从中读取(有点像ssh_config)(也可以为标题保存其他内容,例如用户名)。
现在使用ssh-title some.host连接。我认为这是您无需编辑任何服务器端即可执行此操作的唯一方法。