只是为了澄清一下:我收到的错误与 ssh 文件权限无关。我没有收到与权限相关的错误。
我有以下 ~/.ssh/config 文件
Host git-codecommit.*.amazonaws.com
User APKAIxxxxxxxxxxxxxxx
IdentityFile ~/.ssh/id_rsa
config 和 id_rsa 文件具有以下权限
-rw------- 1 jmsanzg jmsanzg 93 jun 24 16:23 config
-rw------- 1 jmsanzg jmsanzg 1679 abr 26 2015 id_rsa
-rw-r--r-- 1 jmsanzg jmsanzg 396 abr 26 2015 id_rsa.pub
.ssh 目录具有以下权限
drwx------ 2 jmsanzg jmsanzg 4096 jun 24 16:23 .ssh
如果我执行 ssh 强制它使用证书然后它就可以工作了
jmsanzg@jmsanz:~$ ssh -i ~/.ssh/id_rsa [email protected]
You have successfully authenticated over SSH. You can use Git to interact with AWS CodeCommit. Interactive shells are not supported.Connection to git-codecommit.us-east-2.amazonaws.com closed by remote host.
Connection to git-codecommit.us-east-2.amazonaws.com closed.
但每当我尝试直接执行它并尝试使用配置文件时都会失败
jmsanzg@jmsanz:~$ ssh git-codecommit.us-east-2.amazonaws.com
Permission denied (publickey).
此外,如果我设置用户,只是尝试找出失败的原因,那么它也会失败
jmsanzg@jmsanz:~$ ssh [email protected]
Permission denied (publickey).
这让我抓狂,因为它自 2015 年以来一直运行良好,但昨天突然停止工作,没有做出任何改变(我认为是这样)。我在两者上都尝试了 -v 参数,但我看不出有什么具体的区别。就在最后,命令行提供了 RSA 公钥
debug1: Authentications that can continue: publickey
debug1: Offering RSA public key: /home/jmsanzg/.ssh/id_rsa
debug1: Server accepts key: pkalg rsa-sha2-256 blen 279
debug1: Authentication succeeded (publickey).
而应该使用配置文件的其他命令行没有提供文件 /home/jmsanzg/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).
编辑 让事情变得更有趣。我已将 config、id_rsa 和 id_rsa.pub 文件复制到另一台计算机。赋予相同的权限,并且……它们可以双向工作,使用 config 和完整命令行。
答案1
我遇到了同样的问题,ec2 和所有东西。运行时ssh host-name -v
我会得到connection timed out
。我试过:
- 在 ec2 ssh 入站上打开权限
- 打开 .pem 上的 chmod 权限(不能这样做,必须是 400)
- 简化键名
最后,我再次检查了我的 HostName,发现它是错误的 ec2 实例。此外,还有多个 .ssh/config 位置:
- /etc/ssh/ssh_config
- 〜/.ssh /配置
我现在正在使用正确的 ec2 实例:
- 连续工作日 = ~
- 配置位置 = ~/.ssh/config
- 配置文件
Host terraria
HostName "###-###-##-##-###.compute-1.amazonaws.com"
User ubuntu
IdentityFile ~/.ssh/"Terraria Key.pem"
ssh terraria