我有一个sh脚本备份
scp /mybackupdir/* backupuser@backupserver:/backup
有没有简单的方法来添encryption码到SCP? 或者我必须检查一个SSH代理程序是否正在运行,如果不启动一个,并添encryption钥?
首先,我们来分析一下容易混淆的因素:
在SSH的情况下,当人们使用术语…
……但这当然只是一个惯例而且是混乱的一个重要来源。
这就是说,我试图回答你的问题:
如果您的意思是基于密码的SSHauthentication :
如果您的意思是使用密码encryption的私钥文件进行公钥身份validation :
你不能用参数提供密码给scp。
但是,您可以使用按键身份validation:ssh-keygen将生成rsa密钥对进行身份validationssh-copy-id将您的公钥复制到另一个主机。
如果你不能或不想用密钥进行身份validation,那么你可以编写期望脚本,并从脚本中提供密码。 这不是实现这个最安全的方式!
你应该阅读这篇文章:
执行无密码SSHlogin的3个步骤使用ssh-keygen
你可以改变你的脚本:
rsync --rsh='ssh -p(Type your SSH port)' -av /yourBackupDir [email protected]:/backup | mail -s "backup on `hostname`" [email protected]
您不需要ssh代理公钥authentication。 您只需将所需的密钥通过-i
命令行parameter passing给ssh或scp即可。