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