MAC:git忽略passphrase

问题描述:每次git push/pull, 要求输入passphrase:Enter passphrase for key ‘/Users/username/.ssh/id_rsa’

番外TIP–是passphrase不是password:这个问题因为粗心还搞了个乌龙,搜索解决方法的时候,想当然的把passphrase看做了password,试了各种忽略username password的方法,全都不起作用。对世界感到怀疑的时候,感谢天!感谢地!感谢命运让我看到!这个单词不是password!
下面的内容大部分译自github docs
参考链接1:Working with SSH key passphrases

参考链接2:Adding your SSH key to the ssh-agent

参考链接:Working with SSH key passphrases

系统版本:MACOS 10.15.4

问题描述:每次git push/pull, 要求输入passphrase:Enter passphrase for key ‘/Users/username/.ssh/id_rsa’

passphrase是什么

使用SSHkeys的情况下,如果有人接触到你的电脑,那么他们就可以获取到SSHKeys涉及到的所有系统。为SSHKeys添加一个passphrase可以增加一个额外的保护层。

如果不想重复输入passphrase,可以将它存放在安全的aah-agent中。

添加或更改一个passphrase

如果想要更改现有的私钥的passphrase,但不希望重新生成密钥对,可以进行如下操作:

$ ssh-keygen -p
# Start the SSH key creation process
> Enter file in which the key is (/Users/you/.ssh/id_rsa): [Hit enter]
> Key has comment '/Users/you/.ssh/id_rsa'
> Enter new passphrase (empty for no passphrase): [Type new passphrase]
> Enter same passphrase again: [One more time for luck]
> Your identification has been saved with the new passphrase.

如果已经存在一个passphrase,则在可以更改为新的passphrase之前,系统将提示输入该passphrase。

将passphrase保存在keychain中

在OS X Leopard到OS X El Capitan上,下面这些默认私钥文件会被自动处理:

  • ssh/id_rsa
  • Ssh/identity

第一次使用密钥key时,系统将提示您输入passphrase。如果您选择将passphrase与密钥链keychain一起保存,则无需再次输入。

否则,当您向ssh代理添加密钥时,您可以将passphrase存储在密钥链keychain中。

有关更多信息,请参阅“向SSH代理添加SSH密钥

向SSH代理添加SSH密钥

参考链接:Adding your SSH key to the ssh-agent

向SSH代理添加新的SSH Key,将使得keys便于管理。在向SSH代理添加新的SSH Key的时候,您应该检查现有的SSH密钥并生成一个新的SSH密钥。

向代理添加SSH密钥时,请使用默认的macOS SSH add命令,而不是使用macports、homebrew或其他外部源安装的应用程序。

Step1:在后台启动ssh-agent

$ eval "$(ssh-agent -s)"
> Agent pid 59566

Step2: 如果使用的是macOS Sierra 10.12.2或更高版本,则需要修改~/.ssh/config文件,以自动将密钥加载到ssh代理中,并将passphrase存储在密钥链keychain中。

  • 首先,检查您的~/.ssh/config文件是否存在于默认位置。

  • $ open ~/.ssh/config
    > The file /Users/you/.ssh/config does not exist.
    
  • 如果文件不存在,则创建一个

    $ touch ~/.ssh/config
    
  • 打开/.ssh/config文件,然后修改该文件,如果不使用id_rsa密钥的默认位置和名称,则替换/.ssh/id_rsa。

    Host *
      AddKeysToAgent yes
      UseKeychain yes
      IdentityFile ~/.ssh/id_rsa
    
  • 将您的SSH key添加到SSH agent,并将您的passphrase存储在密钥链keychain中。如果使用其他名称创建了key,或者正在添加具有不同名称的现有key,请将命令中的id_rsa替换为private key file的名称

    $ ssh-add -K ~/.ssh/id_rsa
    

    注意:-K是Apple的ssh-add的标准版本,当您向ssh agent添加ssh key时,它会将passphrase存储在您的密钥链keychain中。

    如果你没有安装苹果的标准版本,你可能会收到一个错误。有关解决此错误的更多信息,请参阅“error:ssh add:ilgal option–K

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐