有没有办法让 ssh 身份验证对多个 scp 命令保持打开?

有没有办法让 ssh 身份验证对多个 scp 命令保持打开?

我需要将几个小文件从远程计算机复制到本地计算机。我需要每天执行几次。目前,我使用一个使用 scp 复制文件的脚本。但是,这很慢,因为每次我都需要进行身份验证。除了挂载之外,有没有办法进行一次身份验证并使其保持活动状态直到我完成复制?

答案1

只需使用控制大师SSH 的功能。为此,我放置了一个全局选项:

Host *
    ControlPath ~<user>/.ssh/ctrl-%r-%h-%p

在我的 .ssh/config 中。当然,您必须<user>用您的登录名进行相应的替换。

每当我想要设置初始主连接时,我都会添加“-M”:

ssh -M <machine>

这将创建一个控制套接字,文件名如上所述。任何后续对 ssh/scp 目标的调用都<machine>将重用现有的主连接。连接过程大大加快,因为在控制(==master)连接存在时不需要进一步的身份验证。令人愉快的副作用是,一旦您输入密码短语以建立主连接,您就不需要重新输入密码短语。

答案2

您可以使用 ssh-add 将私钥添加到您的 ssh 身份验证代理。请参阅

man ssh-add

man ssh-agent

相关内容