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 命令。