GitHub提交工作正常但突然:权限被拒绝(公钥)

时间:2018-02-24 17:33:58

标签: git github ssh ssh-keys

几天前我工作正常并且没有任何问题地向GitHub提交内容。

昨天我开始接受" git push":

  

警告:永久添加' github.com,192.30.253.113' (RSA)来了   已知主机列表。权限被拒绝(publickey)。致命的:不能   从远程存储库中读取。

     

请确保您拥有正确的访问权限和存储库   存在。

1)我有ssh密钥并在我的GitHub帐户上检查,指纹匹配(ssh-keygen -lf github_rsa.pub)。

2)尝试生成一个新密钥,以防万一,它是" github2_rsa",从Web上将公钥添加到GitHub,并更改了我的ssh配置。更改了IdentityFile以使用github2_rsa而不是github_rsa,并添加了User = git(建议添加它的解决方案)

import React, { Component } from 'react';
import { View, StyleSheet, TextInput } from 'react-native';
import { RadioGroup, RadioButton } from 'react-radio-buttons'; // 1.2.1

export default class UCI extends Component {
  render() {
    return (
      <View style={styles.container}>
        <TextInput
          style={{height: 40}}
          placeholder="Full Name"
          onChangeText={(text) => this.setState({text})}
        />

        <RadioGroup onChange={ this.onChange } horizontal>
          <RadioButton value="Male">Male</RadioButton>
          <RadioButton value="Female">Female</RadioButton>
        </RadioGroup>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    alignItems: 'center',
    justifyContent: 'center',
  },
});

3)试图再次推,得到同样的错误。

4)ssh -vT git@github.com

Host github.com
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null
    User=git
    IdentityFile=~/.ssh/github2_rsa

我的环境是一个使用WinXP的旧虚拟机(是的,我知道,是针对项目需要的特定环境),并且正在使用SmartGit提交,然后我在命令行开始尝试失败时尝试了同样的问题。

已经在StackOverflow上尝试了很多解决方案并且无法正常工作。

例如:

有些解决方案说&#34; ssh-add xxx&#34;运行ssh-add我得到:

  

无法打开与身份验证代理的连接。

其他人说使用:eval&#34; $(ssh-agent -s)&#34;但在Windows中,eval不会被识别为命令。

2 个答案:

答案 0 :(得分:0)

我今天在 Big Sur 上遇到了这个问题,我在推送到 GitHub 时突然收到了 git@github.com: Permission denied (publickey)。重新启动没有帮助。遇到了这个为我修复它的答案:https://apple.stackexchange.com/questions/254468/macos-sierra-doesn-t-seem-to-remember-ssh-keys-between-reboots

简而言之,问题在于 ssh 代理丢失了我的 ssh 密钥。运行 ssh-add -A 有效(直到下次重新启动?)但更好的解决方案是将以下内容添加到我的 ~/.ssh/config

Host *
  AddKeysToAgent yes
  UseKeychain yes

答案 1 :(得分:-2)

昨天发生了类似的事情,不管我用SSH做什么,它根本不会让我推。

我案中的解决方案不仅仅是愚蠢的。我只需重新启动iterm(iterm2)。我不知道你有没有尝试过,但希望如果你重新启动整个过程它会工作。