如何使用身份文件与rsync?
这是语法我认为我应该使用rsync使用身份文件连接:
rsync -avz -e 'ssh -p1234 -i ~/.ssh/1234-identity' \ "/local/dir/" remoteUser@22.33.44.55:"/remote/dir/"
但它给我一个错误:
Warning: Identity file ~/.ssh/1234-identity not accessible: No such file or directory.
文件是好的,权限设置正确,它工作时,做ssh – 只是不与rsync – 至少在我的语法。我究竟做错了什么?它是否试图在远程机器上查找身份文件?如果是,如何指定我要在本地计算机上使用身份文件?
您可能想使用ssh-agent和ssh-add将密钥加载到内存中。 ssh将自动尝试ssh-agent的身份,如果它能找到它们。命令就是
eval $(ssh-agent) # Create agent and environment variables ssh-add ~/.ssh/1234-identity
ssh-agent是一个用户守护进程,它在内存中保存未加密的ssh密钥。 ssh基于运行时ssh-agent输出的环境变量来查找它。使用eval来评估此输出会创建环境变量。 ssh-add是管理密钥存储器的命令。可以使用ssh-add锁定代理。可以在启动ssh-agent时指定密钥的默认生存期,也可以在添加密钥时指定。
您可能还需要设置〜/ .ssh / config文件以提供端口和键定义。 (有关更多选项,请参见`man ssh_config。)
host 22.33.44.55 IdentityFile ~/.ssh/1234-identity Port 1234
单引号ssh命令将阻止〜或$ HOME所需的shell扩展。您可以使用单引号中的键的完整或相对路径。