我有两台机器:Host1和Host2连接到公共互联网,但它们也通过私有 LAN 连接(因此两台主机都有一个公共 IP 和一个私有 IP)。
-主机1: 192.168.0.1
-主机 2:192.168.0.2
我需要自动化从 Host1 到 Host2 的 SSH 会话(即没有密码提示)。但是由于安全原因,我需要这个(自动登录)仅适用于尝试仅通过专用 LAN 连接的特定用户。
例如:
如果用户 john@Host2 试图通过专用 LAN 从 Host1 连接(即连接来自 192.168.0.1),则允许该连接使用某种身份验证密钥并且不提示输入密码。
如果连接不是来自专用 LAN,则不允许自动登录(即必须输入密码)。
我会很感激一些关于如何设置的详细说明。
谢谢。
跟进:
查看给出的链接,到目前为止我所看到的是,每个解决方案都需要在登录时(对于 ssh-agent 的事情)或在重新启动机器后(使用钥匙串时)手动输入某种安全密钥。
无论机器是否重新启动,是否真的可以自动化一个有效的 SSH 会话?
我开始相信唯一的方法是在 SSH 请求时使用某些工具自动输入密码......并且问题解决了。
要回答您的后续问题,如果您在没有密码的情况下创建 SSH 密钥对,则无需输入密码即可连接服务器。
您可以根据本段在 .authorized_keys 中添加 pubkey:
在“发件人”中,您将输入您的本地接口 IP 地址。使用它加上使用没有密码的 ssh 密钥的组合(这不是最佳实践,但对于大多数系统来说都可以正常工作),将完成您正在寻找的内容。
这可以使用 ssh 密钥来完成。
您如何设置 ssh 以使用密钥而不是用户名/密码进行身份验证?
您可以限制可以使用基于密钥的登录的可接受地址。
请参阅此处的密钥访问限制部分。