在其他应用程序中使用ssh密钥进行身份验证?

Mik*_*ike 8 unix authentication ssh-keys

假设我想为一个简单的网络服务建立一个穷人的身份验证方案.

我不想打扰用户名/密码身份验证,为简单起见,我只想在我的应用程序中有一个公钥列表,任何能证明他们是该密钥的所有者的人都可以使用我的服务.

出于我的应用程序的目的,它将大大简化身份验证过程,因为我的所有用户都在本地网络上,并且他们都使用Unix.每当我登上新用户时,我都可以向他们询问他们的ssh公钥.

是否有一种简单的方法可以在非ssh应用程序中重用ssh公钥认证中涉及的机制?这个问题旨在与语言无关.

Luk*_*ton 2

如果您只有一个可以使用您的应用程序的用户列表,并且您不需要查看谁做了什么。

您可以设置服务器,使其仅侦听 localhost (127.1) 而不是 0.0.0.0,并提供受限制的 sshd,转发连接到应用程序所需的端口

~/.ssh/authorized_keys将提供可以使用的授权密钥的列表。

 ssh -I private_key_file <hostname> -L 3000:localhost:3000
Run Code Online (Sandbox Code Playgroud)

有关配置 sshd 的基本设置和帮助,请查看此答案: https: //askubuntu.com/questions/48129/how-to-create-a-restricted-ssh-user-for-port-forwarding

注意:请注意,如果您不将其锁定,则任何用户都将对托管计算机的机器具有完全的 shell 访问权限。