我有很多这样的别名,=之前的部分是ssh配置中的主机
alias sshConfigHost='ssh -t hostname docker exec -it containerName bash'
我可以将它们添加到某种配置文件中吗?主机名是在 ssh 配置中定义的,因此它在某种程度上被使用了两次,我是否可以有一个像这样的占位符,%<whatever>
它将从 ssh 配置中获取主机名。
如果没有,那么我至少可以在 ssh 配置中包含容器名称,然后使用占位符将其拉入 cmd 吗?
alias sshConfigHost='ssh -t hostname docker exec -it containerName bash'
我可以将它们添加到某种配置文件中吗?主机名是在 ssh 配置中定义的,因此它在某种程度上被使用了两次,我是否可以有一个像这样的占位符,%<whatever>
它将从 ssh 配置中获取主机名。
如果没有,那么我至少可以在 ssh 配置中包含容器名称,然后使用占位符将其拉入 cmd 吗?
我假设您想使用没有任何尾随“参数”的别名(即在 shell 中您想调用 sole
sshConfigHost
,而不是类似的东西sshConfigHost -c "shell code here"
)。如果是这样,您可以将所有内容放入您的
~/.ssh/config
:(如果有的
Host *
话,请记住,对于每个参数,将使用第一个获得的值。)现在你只需要做:
并且
ssh
会像你一样行事:Host …
根据需要定义任意多个部分。他们中的一些人可能使用相同Hostname
和不同的RemoteCommand
,或者其他什么。重点是您可以构建丰富的配置,因此在 shell 中就足够了,ssh oneword
并且配置将为您填充所有内容,具体取决于oneword
.配置文件故意如此强大,它可以指定每个选项。见
man 5 ssh_config
。我对这个概念感到害怕(当我可以像使用任何其他工具一样在命令行中指定选项等时,为什么要费心一些“晦涩”的配置?),直到我发现它整洁且方便。这才是正确的使用方法ssh
。一般来说,如果在调用时需要一次又一次重复某些内容ssh
,请考虑将其放入配置文件中。然后 shell 中就不需要附带别名了。整个配置都在你的
~/.ssh/config
.