我可以根据使用的端口有不同的 ssh 默认值吗?

我可以根据使用的端口有不同的 ssh 默认值吗?

我在同一主机名上有多个 SSH 服务器,并且我想对在一个端口上运行的 ssh 服务器使用默认用户名,对第二个 ssh 服务器使用另一个端口。这可能吗?

答案1

man sshd

-f config_file 指定配置文件的名称。默认为 /etc/ssh/sshd_config。如果没有配置文件,sshd 将拒绝启动。

因此,sshd使用单独的配置文件调用服务器实例。

答案2

没有很好的解决方案,但可以Match exec使用ssh_config.

man ssh_config

exec 关键字在用户的 shell 下执行指定的命令。如果命令返回零退出状态,则条件被视为 true。包含空白字符的命令必须用引号引起来。命令中的以下字符序列将在执行之前展开:“%L”将替换为本地主机名的第一个组成部分,“%l”将替换为本地主机名(包括任何域名), '%h' 将替换为目标主机名,'%n' 将替换为命令行上指定的原始目标主机名,'%p' 为目标端口,'%r' 为远程登录用户名,“%u”为运行 ssh(1) 的用户的用户名。

这意味着我们可以让sshexecute/usr/bin/test匹配端口(这里是2222):

Match host "your_host" exec "test 2222 -eq %p"
    User another_user

或者,您可以在另一个端口上为 SSH 服务器定义昵称/别名:

Host server_with_other_port
    Port 2222
    User another_user

ssh server_with_other_port然后您就可以使用不同的默认端口和默认用户名连接到第二个 SSH 服务器。

别名解决方案的注意事项是,仅当您使用别名时才应用默认用户名,而不是当您使用真实服务器名称或 IP 地址时应用默认用户名。

相关内容