通过 ssh 自动登录(未安装 GUI 环境/没有可用的 ssh 代理)?

通过 ssh 自动登录(未安装 GUI 环境/没有可用的 ssh 代理)?

我有三个系统,我想让它们定期在它们之间进行备份。其中两个安装了 Debian Wheezy,另一个安装了 Ubuntu 12.04。只有Ubuntu有GUI环境,其他两个只有CLI。

对于备份,我想使用rsyncvia ssh,其中 Debian 系统是备份的目标。我已经整理了命令,并在系统之间正确生成和复制了 ssh 密钥,但由于 Debian 系统没有安装图形环境,因此ssh-agent不会自动运行。因此,每当我尝试ssh访问 Debian 系统时,都会提示输入密码。

有没有办法跳过提示?据我了解ssh-agent,当我只有 CLI 时,我无法使用 。我正在寻找一种即使在重新启动后也能正常工作的解决方案,而无需在重新启动后执行任何操作。

提前致谢。

答案1

为此,我将创建一个单独的特定无密码 SSH 密钥。在服务器端,您可以对该密钥的用途和连接位置设置限制,这样即使有人掌握了该密钥,他们仍然无法使用它来执行恶意操作。

限制密钥的方法是authorized_keys在服务器端编辑该文件,并在其中添加一些配置。这是一个例子:

from="10.1.2.3",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="/path/to/rsync" ssh-dss AA....[rest of key]

答案2

您可以使用没有密码的 SSH 密钥。

如果您不喜欢这个想法,那么您可以创建一个没有密码的密钥文件并将其放入 RAM 磁盘中。因此,重新启动后,您必须手动登录,以便通过输入密码并提供新文件来准备系统以进行批量 SSH 使用。在ssh通话中,您必须提供此文件:

ssh -i /tmpfs/no_passphrase.key ...

答案3

看看钥匙链包裹。我不确定它是否会执行您想要的操作,但它确实以某种方式将密钥缓存在内存中。而且它不需要 X 才能工作。

相关内容