我可以像往常一样通过 ssh 进入多个主机。我有 sudo/su 权限,因此我经常需要在登录服务器时输入该权限。有什么方法可以~/.ssh/config
自动完成此操作吗?
我有
Host *.example.com
IdentityFile ~/.ssh/id_rsa_projkey
我希望ssh blah.example.com
仍然能正常工作,获得常规 shell。但随后ssh su-blah.example.com
登录,然后运行sudo -i
(或su
),即相当于运行ssh blah.example.com -t sudo -i
。我知道我可以添加RemoteCommand
到 SSH 配置中。有没有办法在 SSH 配置中对主机名进行“模式匹配”和文本替换?`
答案1
我认为无法在 ssh_config 中对主机名进行替换,但我会尝试添加以点为前导的第二个条目,例如:
Host *.example.com.
IdentityFile ~/.ssh/id_rsa_projkey
RemoteCommand sudo -i
RequestTTY yes
以点开头的 DNS 名称应与不带点的 DNS 条目相同,但 ssh 会将其视为不同的主机名
或者,您可以添加覆盖主机名的条目,但每个主机都需要一个条目。例如:
host su-foo.example.com
hostname foo.example.com
IdentityFile ~/.ssh/id_rsa_projkey
RemoteCommand sudo -i
RequestTTY yes
答案2
Ansible或类似的工具可能就是您正在寻找的工具。