当我使用密钥登录服务器时
ssh -i /home/me/.ssh/id_rsa server
一切顺利。密钥在服务器上已授权。但是,如果我尝试从 shell 脚本执行相同操作,则会收到密码请求。当我尝试使用密钥文件进行 scp 时,也会发生同样的情况:
scp -i /home/me/.ssh/id_rsa file server:
我还为主机创建了 ~/.ssh/config:
Host server
hostname server
IdentityFile /home/me/.ssh/id_rsa
当我尝试使用 SSH 时,ssh server
我也会收到密码请求。密钥文件、ssh 配置和服务器的 authorized_keys 的权限设置为 600。
我该如何解决这个问题?
编辑
sshfs 也发生了同样的事情。
sshfs -o IdentityFile=/home/me/.ssh/id_rsa server:/directory mountpoint
从 cli 运行良好。当它在 shell 脚本中时,我收到密码请求。
答案1
这可能是由于 .ssh 目录或用户的主目录没有正确的权限。重新创建用户可能会解决这个问题。