网络主机不支持公钥认证。如何避免输入密码?

网络主机不支持公钥认证。如何避免输入密码?

不幸的是,我的网络托管计划不允许公钥认证。显然,此方法仅适用于 VPS 和专用服务器客户

我已经使用 Deja-Dup 备份了我的 Ubuntu 11.10 机器,并且正在使用 rsync 将备份文件发送到我的网络主机。

我想使用脚本自动执行此过程,但由于我无法使用公钥认证,因此每次启动该过程时我都不得不手动复制和粘贴我的(强)SSH 密码。

有办法解决这个问题吗?如果有,怎么做?

答案1

如果你需要输入密码,则必须通过expect,因为 ssh 要求密码来自终端。这里这是一个示例预期脚本。

有可能主机禁用了公钥认证,但这需要他们故意关闭它(在PubkeyAuthentication No/etc/sshd/sshd_config)。他们这样做没有任何技术原因,纯粹是为了市场细分。

我建议你首先尝试使公钥认证工作。关注此程序生成并上传密钥。如果出现问题,请随时在此处询问;如果您告诉我们您尝试了什么以及收到哪些错误消息,我们可能会提出解决方法。如果您遇到问题,请发布 sshd 配置(如果/etc/sshd/sshd_configWeb 主机运行的是 Ubuntu,则可能在另一个位置,例如/etc/sshd_config如果主机运行的是其他发行版),以及 的输出ls -ld ~ ~/.ssh; ls -l ~/.ssh

相关内容