我需要通过 sftp 连接以编程方式上传和下载文件到远程服务器。我的用户名有权通过密码访问某个远程目录,但不能访问 .ssh 目录。实际上我根本无法 ssh 进入远程服务器。我得到回应:
This service allows sftp connections only.
Connection to www.example.com closed.
但是出于这个问题的目的,假设我根本没有权限将我的私钥复制到远程 .ssh 目录中。所以我的问题是:
如何配置我的本地/.ssh/config文件,以避免提示输入密码身份验证?
显然,由于上述原因,我无法将新生成的密钥对复制到远程目录,正如这里所建议的那样。但是我的本地机器上必须有一个用于 ssh 连接的私钥,对吧?我不能简单地将该文件的目录传递给 IdentityFile 选项吗?
请该远程服务器的管理员为您启用公钥身份验证。因为服务器端和客户端都需要支持公钥认证,所以不能单独从客户端强制它。
对于脚本访问,sshpass是一种可能的解决方案。这允许您将密码存储在文件中,以便在您无法使用基于密钥的身份验证时自动登录。
https://www.redhat.com/sysadmin/ssh-automation-sshpass是一个有用的资源。