SSH 服务器端的 SSH 代理命令

SSH 服务器端的 SSH 代理命令

ProxyCommand使用客户端文件中的SSH指令~/.ssh/config,可以通过充当跳转主机的不同 SSH 服务器连接到 SSH 服务器。

SSH 服务器端是否有类似的配置?例如,当用户使用某个授权密钥登录到跳转机时,我希望此 SSH 连接自动转发到另一台同样运行的机器sshd

答案1

您可以指定每当有人使用 ssh 密钥登录时执行的命令。

编辑文件~/.ssh/authorized_keys。在要转发的每个键前面添加command=ssh user@target

必须为每个用户执行此操作。由于这是使用用户配置文件完成的,因此每个用户都可以更改此设置。如果您信任您的用户(或者您是唯一的用户),那么这样做是可以的。您还可以通过不向用户提供任何其他方法来访问此计算机上的 shell 来阻止用户更改此设置。

有关更多信息,请阅读sshd手册页。搜索AUTHORIZED_KEYS FILE FORMAT部分,然后搜索command="command"

ForceCommand或者:您可以使用in强制执行命令/etc/ssh/sshd_config。此选项更安全,因为它由 sshd 强制执行,并且只有具有 root 权限的用户才能更改它。

欲了解更多信息,请阅读sshd_config手册页。搜索ForceCommand

答案2

最简单的方法就是

ssh -t user@host

在用户的 .bash_login 文件中,这样当他们登录时,它只会启动到远程计算机的新 ssh 会话。(-t 强制伪 tty 分配 - 不确定您是否需要这个)

如果您想要获得更复杂/集中管理,您可以用脚本/程序替换用户的 shell,选择要连接的正确远程服务器并相应地执行 ssh 命令。

相关内容