使用私有证书的 ssh 访问可以从本地主机进行,而不是从远程进行

使用私有证书的 ssh 访问可以从本地主机进行,而不是从远程进行

我是 Gnu/Linux 和 UNIX 方面的菜鸟。我正在玩游戏来学习这个操作系统的基础知识。

作为我正在玩的游戏的一部分,我必须使用 登录远程服务器ssh,只有私钥证书和用户名(无密码)。

  • 如果我从远程计算机(我使用另一个用户名登录)使用 SSH 登录,我将被授予无需任何密码的访问权限。
  • 如果我尝试从本地计算机登录,SSH 会要求我输入密码。

这是我尝试访问的服务器的 SSH 配置的结果吗?
我的意思是,如果我从本地主机(在本例中为服务器)登录以及从远程计算机(在本例中为我的 PC)登录,SSH 可以应用不同的登录策略吗?

多谢。
亲切的问候。

答案1

这是我尝试访问的服务器的 SSH 配置的结果吗?

根据您分享的详细信息,我们无法确定。您甚至可能连接到在同一系统上运行的两个不同的、独立配置的 SSH 守护程序。

我的意思是,如果我从本地主机(在本例中为服务器)登录,并且从远程机器(在本例中为我的 PC)登录,SSH 是否可以应用不同的登录策略?

是的,SSH 服务器可以根据传入连接的各种属性应用不同的策略。

例如,MatchOpenSSH 配置中的关键字sshd允许您定义条件块,这些条件块仅在满足指定条件列表时才应用(并覆盖先前设置的指令)(有关详细信息,请参阅man 5 sshd_config)。

将此块添加到/etc/ssh/sshd_config(确切位置可能会有所不同,具体取决于您的系统):

PubkeyAuthentication yes

Match Address "!127.0.0.1,!::1,*"
    PubkeyAuthentication no

将指示sshd

  • 默认允许公钥认证;
  • 127.0.0.1禁止对来自和之外的其他地址的连接进行公钥身份验证::1

(避免头痛的注意事项:如man 5 ssh_config、“模式”、

[...] 否定的匹配本身永远不会产生积极的结果。 [...]此处的解决方案是包含一个将产生正匹配的术语,例如通配符[...]

这就是为什么在其末尾"!127.0.0.1,!::1,*"包含 a )。*

相关内容