我需要将几个小文件从远程计算机复制到本地计算机。我需要每天执行几次。目前,我使用一个使用 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