我创建了一个名为我的实例的用户grader
并授予它 sudo 权限,同时我将密码设置/etc/ssh/sshd_config
为关闭。
我在本地机器上生成了一个密钥对,并将公钥添加到实例中。当我尝试使用 Amazon AWS 提供的默认用户和我生成的密钥访问实例时,它可以正常工作
ssh -i "udacityLinux" [email protected]
但是当我尝试使用用户执行相同操作时grader
出现此错误:
ssh -i "udacityLinux" [email protected]
[email protected]: Permission denied (publickey).
我该如何修复此问题才能使用我的grader
用户登录?
答案1
您似乎对上传到服务器的公钥存在误解。
~/.ssh/authorized_keys
该密钥必须存储在每个应通过该密钥识别的用户的文件中。
此路径~/.ssh/authorized_keys
相当于您当前的用户目录,如果您以grader
用户身份登录,该路径将指向:
/home/grader/.ssh/authorized_keys
如果您以用户身份登录ubuntu
,该路径将指向:
/home/ubuntu/.ssh/authorized_keys
因此现在您可以使用以下命令复制密钥文件:
sudo cp /home/ubuntu/.ssh/authorized_keys /home/grader/.ssh/
然后设置正确的所有者和权限:
sudo chown grader:grader /home/grader/.ssh/authorized_keys
sudo chmod 0600 /home/grader/.ssh/authorized_keys
请记住,现在您也接受您可能为ubuntu
用户启用的所有密钥。grader