我有一个Github repo,我想从两台不同的Linux机器上访问。
对于第一台机器,我遵循Github的指令生成SSH密钥,并将生成的公钥添加到Github。 这个客户端工作正常。
对于第二个客户端,我复制了第一个客户端的/home/{user}/.ssh/id_rsa文件。 我认为这可能是我所要做的,但是当我尝试连接时,我会得到“权限被拒绝(publickey)”。
我错过了什么?
应该可以从多个客户端使用相同的SSH密钥。 对于不同的networking,我有几个不同的SSH密钥,实际上它们存储在一个encryption的USB驱动器上,我使用它从几台不同的计算机上没有问题。
SSH对文件权限非常挑剔,所以我首先要检查从/home/{user}到id_rsa文件本身的所有权限。
SSH并不真正关心组或世界的写权限,所以请确保你的chmod go-w你的主目录和~/.ssh目录的初学者。 我还要确保它们属于您的用户chown ${USER}:${USER} 。
对于SSH密钥本身我chmod 600他们…
如果你想我有我如何pipe理我的SSH密钥在我的答案另一个SSH问题的额外信息。
如果您从Github的terminal获得了拒绝权限,可能是因为它没有select您复制的SSH密钥文件,而是系统默认的文件。 一个简单的方法是在~/.ssh/config文件中添加以下内容:
Host github.com Hostname github.com User git IdentityFile ~/.ssh/yourkeyfile
这会迫使你的SSH客户端只使用那个密钥给github.com。
希望这可以帮助。
这可能是因为您没有在第二个客户端上复制该文件的权限。
但是一个私钥是私有的 ,正确的方法是在第二个客户端上创build一个新的私钥,然后把它的公钥添加到Github