我创建了一个GCP实例,并在kali linux上创建了一个私钥和公钥,我将该密钥保存在GCP的元数据中,这样我就可以通过我的kali机器访问该实例。然后,我需要将此 GCP 实例中的文件复制到本地计算机中,因此我使用 powershell 命令: scp -i C:\Users\mymachine\OneDrive\Desktop\ myprivatekey GCPUser@GCP_IP:/home/GCPUser/lastname.txt c:\Users\mymachine
但它给了我一个公钥权限被拒绝
答案1
登录到您的 GCP 实例并运行journalctl -ru ssh.service
以查看来自 的最新消息sshd
。日志消息应包含您的公钥身份验证尝试被拒绝的原因。
最常见的原因是~/.ssh
目录或authorized_keys
其中的文件保护得不够好。如果权限允许其他用户写入该~/.ssh
目录,sshd
则将忽略该authorized_keys
文件,假设该文件可能已被其他用户恶意插入。
如果您不确定如何更改权限,请运行namei -l ~/.ssh/authorized_keys
并将输出添加到原始问题帖子中。它应该立即显示文件的权限、它所在的目录以及所有父目录。
一个好的结果应该类似于这样:
namei -l ~/.ssh/authorized_keys
f: /home/GCPUser/.ssh/authorized_keys
drwxr-xr-x root root /
drwxr-xr-x root root home
drwxr-xr-x GCPUser GCPUser GCPUser
drwx------ GCPUser GCPUser .ssh
-rw------- GCPUser GCPUser authorized_keys