我使用Linux,帮助一些使用Macintosh的学生。我可以指导他们完成命令行部分,但是在某些Mac设置方面,我无能为力。
在Macintosh上,我们遵循这里的说明https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent。我们能够生成SSH密钥,上传公共部分,然后我们就能与GitHub进行交互。我们同样可以在Gitlab服务器或BitBucket上完成相同操作。
以下是我不理解的部分。在更新的Mac OS中,用户账户没有在每个会话中启动ssh-agent并记住用户密钥。据我所知,当用户想要使用ssh协议与GitHub或其他Git远程交互时,有必要在终端中运行以下两行命令:
$ eval "$(ssh-agent -s)"
$ ssh-add -K ~/.ssh/id_rsa
这很繁琐,但据我所知,这就是Mac世界的状态。https://github.com/lionheart/openradar-mirror/issues/15361。这有点不方便。即使我们将它们放在一个shell脚本中,也不是很好用。
我想将它们放在shell配置文件中,但不知道具体如何操作。
Linux系统总是为我们启动ssh-agent,我们从未遇到过这种不便,我认为。
我询问了几位经验丰富的Mac用户,他们说他们没有遇到这个问题,Git和SSH密钥都可以正常使用。我试图找出他们系统中的不同之处。目前,我最好的猜测是他们创建的密钥没有任何密码,这种情况下事情可能就可以在没有ssh-agent的情况下工作。我会请其中一位尝试并观察结果。
如果您有其他想法,请提出建议。
ssh-agent
插件和 oh-my-zsh 来“解决”了这个问题。你可以考虑修改他们的脚本来适配默认的 OS X shell:https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/plugins/ssh-agent/ssh-agent.plugin.zsh - Cameron Hurdzsh
。它不是! - Cameron Hurd