【问题标题】:Host Key Verification Failed with sshpass rsync主机密钥验证因 sshpass rsync 失败
【发布时间】:2017-11-04 09:07:49
【问题描述】:

在我的 linux 服务器上,我运行以下命令:

sshpass -p 'password' rsync -avz /source/folder/ root@192.168.x.x:/dest/folder

当我在没有 sshpass 的情况下运行命令时,它会提示我主机的真实性和密码。

我需要一些等效于“-o StrictHostKeyChecking=no”(我用于 ssh)的东西,这样我就可以在没有提示或错误的情况下运行它。

我在谷歌上看到的一切都是关于 ssh 抛出错误而不是 rsync。

【问题讨论】:

    标签: ssh rsync sshpass


    【解决方案1】:

    我在cyberciti 找到了以下命令。这让我可以做我需要做的事情。

    $ rsync --rsh="sshpass -p myPassword ssh -o StrictHostKeyChecking=no -l username" server.example.com:/var/www/html/ /backup/

    【讨论】:

    • 跳过唯一的检查以防止恶意攻击者进入您和您的服务器并窃取您的密码、监听您传输的任何内容并可能对其进行修改,这是非常糟糕的做法。
    • 我不在乎。我的服务器和它的整个网络都被物理地封闭在一个安全的房间里。
    【解决方案2】:

    如果你想连接到新的服务器,而你的~/.ssh/knonwn_hosts 中还没有哪个公钥,你不应该跳过这个唯一的安全检查,而是手动将服务器主机密钥存储在known_hosts 中,验证它是正确的,然后使自动检查工作。

    使用服务器主机密钥获取已知主机的最简单方法是使用

    ssh-keyscan server-ip >> ~/.ssh/known_hosts
    

    之后,您应该不需要使用StrictHostKeyChecking=no 解决方法。

    【讨论】:

    • 对于那些在非标准端口上运行SSH的,cmd应该是:ssh-keyscan -p port server-ip >> ~/.ssh/known_hosts
    【解决方案3】:

    这是没有输出错误的正确命令:

    sshpass -p "yourpassword" rsync -rvz -e 'ssh -o StrictHostKeyChecking=no -p 22' --progress  root@111.111.111.111:/backup/origin /backup/destination/
    

    【讨论】:

    • 解决的关键是添加SSH选项-o StrictHostKeyChecking=no
    【解决方案4】:

    在某些情况下,sshpass 尝试将“assword”作为默认密码提示指示符。但是 rsync 可以返回类似的字符串:

    Enter passphrase for key '/home/user/.ssh/private_user_key':
    

    所以,尝试添加'-P'参数:

    sshpass -p "yourpassword" -P 'Enter passphrase for key' rsync 111.111.111.111:/backup/origin /backup/destination/
    

    您可以在 /home/user/config 中设置或使用 -e 参数设置的私钥路径:

    sshpass -p "yourpassword" -P 'Enter passphrase for key' rsync -e 'ssh -i /home/user/.ssh/private_user_key' 111.111.111.111:/backup/origin /backup/destination/
    

    更多关于默认密码提示指示器的信息:

    $ sshpass -V
    sshpass 1.06
    (C) 2006-2011 Lingnu Open Source Consulting Ltd.
    (C) 2015-2016 Shachar Shemesh
    This program is free software, and can be distributed under the terms of the GPL
    See the COPYING file for more information.
    
    Using "assword" as the default password prompt indicator.
    

    【讨论】:

    • 在网上弹跳试图找出我的问题后,-P 'Enter passphrase for key' 解决了我的连接问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2013-02-16
    • 2020-07-15
    • 2018-10-04
    • 2022-12-20
    相关资源
    最近更新 更多