我有两个机器:主机1和主机2连接到公共互联网,但他们也通过专用局域网连接(所以这两个主机都有一个公共IP和私有IP)。
– 主机1 :192.168.0.1
– 主机2 :192.168.0.2
我需要从Host1到Host2的SSH会话自动化(即没有密码提示)。 但由于安全原因,我需要这个(自动login)只为特定用户尝试通过专用局域网连接工作。
例如:
如果用户john @ Host2正试图通过专用局域网连接Host1(即连接来自192.168.0.1),则允许该连接使用某种authentication密钥,而不会提示input密码。
如果连接不是来自专用LAN,那么不要允许自动login(即必须input密码)。
我会欣赏一些关于如何设置的详细说明。
谢谢。
跟进 :
看看给出的链接,我目前看到的是,每个解决scheme都需要在login时(用于ssh-agent的东西)或重新启动机器(使用钥匙串时)手动input某种安全密钥。
无论机器是否重新启动,实际上是否可以使SSH会话自动运行?
我开始相信唯一的办法是自动input密码使用一些工具,当SSH请求它…并解决问题。
要回答你的后续问题,如果你不用密码创build你的SSH密钥对,那么你就不需要input密码来连接服务器。
根据以下段落,您将在.authorized_keys中添加pubkey:
密钥访问限制
作为限制公用密钥访问任何服务器的一个可选步骤,可以在服务器上的〜/ .ssh / authorized_keys文件中的公用密钥条目之前使用from语句,以限制允许客户端系统访问服务器从。 如果没有限制,任何具有相应私钥数据的客户端系统都可以从任何地方连接到服务器。 如果密钥对只在客户端系统从example.org下的主机连接时才起作用,则在公钥数据之前设置=“*。example.org”。
server$ cat ~/.ssh/authorized_keys from="*.example.org" ssh-rsa AAAAB3NzaC1…
在“从”你会把你的本地接口IP地址(ES)。 使用加上一个没有密码(这不是最佳实践,但对于大多数系统将正常工作)使用ssh密钥的组合,将完成您正在寻找的。
这可以使用SSH密钥完成。
你如何设置SSH来使用密钥而不是用户名/密码进行身份validation?
您可以限制可以使用基于密钥的login的可访问地址。
请参阅此处的关键访问权限部分。