不幸的是,我的网络托管计划不允许公钥认证。显然,此方法仅适用于 VPS 和专用服务器客户。
我已经使用 Deja-Dup 备份了我的 Ubuntu 11.10 机器,并且正在使用 rsync 将备份文件发送到我的网络主机。
我想使用脚本自动执行此过程,但由于我无法使用公钥认证,因此每次启动该过程时我都不得不手动复制和粘贴我的(强)SSH 密码。
有办法解决这个问题吗?如果有,怎么做?
答案1
如果你需要输入密码,则必须通过expect
,因为 ssh 要求密码来自终端。这里这是一个示例预期脚本。
有可能主机禁用了公钥认证,但这需要他们故意关闭它(在PubkeyAuthentication No
内/etc/sshd/sshd_config
)。他们这样做没有任何技术原因,纯粹是为了市场细分。
我建议你首先尝试使公钥认证工作。关注此程序生成并上传密钥。如果出现问题,请随时在此处询问;如果您告诉我们您尝试了什么以及收到哪些错误消息,我们可能会提出解决方法。如果您遇到问题,请发布 sshd 配置(如果/etc/sshd/sshd_config
Web 主机运行的是 Ubuntu,则可能在另一个位置,例如/etc/sshd_config
如果主机运行的是其他发行版),以及 的输出ls -ld ~ ~/.ssh; ls -l ~/.ssh
。