0

我(非常)最近发布了这个关于 tar over ssh 的问题。

这个问题现在有了答案,我现在问一个不同的问题。

我运行以下命令将代码从本地计算机推送到运行它的服务器。

tar -cJf - ./my_folder | ssh user@example 'tar -xJf - -C ./path-to-my_folder/'

我知道使用ssh/scp我可以用它sshpass -p password来停止每次要求我输入密码的命令。请注意,我不能使用其他身份验证方法。

是否可以与我的上述命令结合sshpass使用,这样我就不必不断输入密码了?

换句话说,我应该如何编辑上述命令以包含sshpass,以便在每次运行上述命令时都不必输入密码?

编辑:注意以下确实有效

例如

sshpass -p <password> ssh ... blaa blaa
sshpass -p <password> scp ... blaa blaa
4

1 回答 1

0

我认为你可以使用这样的东西:

tar -cJf - ./my_folder | sshpass -p $remote_ssh_password ssh -o StrictHostKeyChecking=no $remote_ssh_username@$remote_web_address "tar -xJf - -C ./path-to-my_folder/"

注意:StrictHostKeyChecking=no 避免提示服务器指纹确认。它可能会产生安全问题:

“因此,如果您想知道您是否正在与正确的服务器(而不是某个冒充者)交谈,那么您“只”需要计算服务器的密钥指纹(从服务器刚刚发送给您的公钥)并进行比较它带有“参考指纹”。”

更多信息可以在这里找到

于 2016-07-08T22:33:03.950 回答