我尝试将文件从 GCP 实例复制到本地计算机,但 powershell 给出“权限被拒绝:(publickey)”

我尝试将文件从 GCP 实例复制到本地计算机,但 powershell 给出“权限被拒绝:(publickey)”

我创建了一个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

相关内容