在我的linux服务器上运行命令:
var marker = L.icon({
iconUrl: 'https://raw.githubusercontent.com/evantdailey/map_testing/master/dot.png',
iconSize: [20,20],
});
function onEachFeature(feature, layer) {
layer.on('click', function(e) {
lat = feature.geometry.coordinates[1];
lng = feature.geometry.coordinates[0];
mymap.on('click', function (e) {
if (marker) {
mymap.removeLayer(marker);
}
marker = new L.Marker([lat,lng], {icon: marker}).addTo(mymap);
});
});
}
当我在没有sshpass的情况下运行命令时,它会向我提供主机和密码的真实性提示。
我需要一些等同于" -o StrictHostKeyChecking = no" (我用于ssh),这将允许我在没有提示或错误的情况下运行它。
我从google搜索中看到的一切都是关于ssh抛出错误而不是rsync。
答案 0 :(得分:5)
如果要连接到新服务器,~/.ssh/knonwn_hosts
中尚未使用哪个公钥,则不应仅跳过此安全检查,而是手动将服务器主机密钥存储在known_hosts
中,验证它是否正确,然后使自动检查工作。
使用服务器主机密钥填充已知主机的最简单方法是使用
ssh-keyscan server-ip >> ~/.ssh/known_hosts
之后,您不需要使用StrictHostKeyChecking=no
解决方法。
答案 1 :(得分:1)
我在cyberciti找到了以下命令。这使我能够完全按照我的需要做到。
$ rsync --rsh="sshpass -p myPassword ssh -o StrictHostKeyChecking=no -l username" server.example.com:/var/www/html/ /backup/
答案 2 :(得分:1)
这是没有输出错误的正确命令:
sshpass -p "yourpassword" rsync -rvz -e 'ssh -o StrictHostKeyChecking=no -p 22' --progress root@111.111.111.111:/backup/origin /backup/destination/
答案 3 :(得分:0)
在某些情况下,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.