我有一个 ec2 实例及其 .pem 密钥文件,我想用它来将文件从本地计算机传输到服务器
我尝试使用以下方式连接实例:
chmod 400 abc.pem
之前)--错误:Server refused our key / No supported authentication methods available (server sent: publickey)
ssh -l user -i abc.pem user@ip
——有时有效*显然我弄乱了
~/.ssh/authorized_keys
文件,并且 .PEM 密钥不允许连接实例。
此时authorized_keys文件有一行像这样:
ssh-rsa AAAAB3Nza....
然后我做了
chmod 400 abc.pem
并尝试了以下操作:
我尝试过:
ssh -l ubuntu -i abc.pem ubuntu@ip
ssh-add ~/keyfile.pem
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for 'cola-aws-ohio-key.pem' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored.
chmod 400
后第二次尝试:Identity added: cola-aws-ohio-key.pem (cola-aws-ohio-key.pem)
~/.ssh/authorized_keys
看起来和以前一样关于如何解决这个问题有什么想法吗?奇怪的是,ppk 密钥(从 pem 文件派生)可以工作,但原始的 pem 密钥却不能。
amazon linux 2023 和 ubuntu 22 用户更新版本的 openssl, 您需要获取更新的密钥 ssh-keygen -o -a 100 -t ed25519
以下是我在多次解决方法后解决问题的方法:
更新了 MobaXterm——我知道
确保 a.pem 权限。我也在 Windows 上使用 WSL。 文件的权限是
-rwxrwxrwx
但应该是 -r--------
(-r--r--r--
也适用于我)
我尝试了 chmod 400 a.pem,它仅在文件位于 Ubuntu/Linux 内部文件夹 (
~
) 上时有效,而不是在 Windows 共享文件夹 (/mnt/c/...
) 上。但是,当我尝试将文件从 Ubuntu/Linux 内部文件夹复制到 Windows(MobaXterm 可以使用它)时,权限又变回 -rwxrwxrwx
我也尝试过:
因此,我使用 PowerShell 作为管理员更改了 Windows 中的权限,使用以下代码:
cd C:\mydir
icacls.exe a.pem /reset
icacls.exe a.pem /grant:r "$($env:username):(r)"
icacls.exe a.pem /inheritance:r
显然,更新 MobaXterm 和确定文件权限的结合就是其工作方式