使用密码自动 ssh 登录?

Sab*_*lfy 6 security password ssh key-authentication

通过 ssh 登录到机器通常需要在授予访问权限之前输入密码。或者,可以将密钥/证书(没有密码)安装到远程机器上,以便登录不再需要密码。这对于自动化或脚本化解决方案特别有用。

但是,创建没有密码短语的密钥/证书被认为是不可取和不安全的。涉及ssh-add和 的解决方案ssh-agent被提议作为每次会话仅输入一次密码的一种方式,但仍使用带有密码的密钥/证书。

机器之间自动连接的解决方案是什么?一台机器如何bzr+ssh定期从远程 Bazaar 存储库(通过?)自动更新,就像在 cron 作业中一样?作为 cron 作业的一部分,一台机器如何从另一台机器(通过 rsync)自动备份数据?rsyncd? 但是,这不会被加密,这是一个主要缺点。我没有看过 Bazaar 守护进程/服务器选项。

Ulr*_*gel 5

对于自动登录,您必须使用无密钥 ssh 密钥,因为您必须在启动时手动干预并提供密码短语,并且必须在重新启动后重新提供密码。

为了保护这些密钥,有多种解决方案 -有关更多详细信息,请参阅man sshd

  1. 使用from=参数限制远程主机的密钥,例如:

    from="*.example.com" ssh_key
    
    Run Code Online (Sandbox Code Playgroud)

    这将只允许来自 example.com 的机器

  2. 使用command=参数指定将执行哪个命令,例如:

    command="some command" ssh_key
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用具有受限 shell 或仅具有必要权限的专用用户,例如,对于备份,用户只能使用 sudo 运行 rsync。