采用SSH验证的方式有一个缺陷,任何人在保存有私匙的计算机上都可以对GitHub进行操作,另外私匙也存在被别人盗窃的风险。SSH提供了一种SSH with authentication key的认证方式。该方式对私匙设置了一个口令,在使用私匙前必须先输入口令,口令验证通过后才能使用私匙进行下一步操作。在本地计算机上设置SSH时,有一个提示输入口令的步骤,如图:
口令是可选的,如果没有输入口令,在设置完毕后,用户的任何git操作都不需要输入口令。
如果输入了口令,在进行任何git操作时,都会提示用户输入口令,如图:
如果输入了口令,在进行任何git操作时,都会提示用户输入口令,如图:
按照GitHub的认证过程(一)的思路,其认证过程可能是下面这样的:
该方式避免了私匙失窃的风险,但操作过于繁琐,如果不想每一次操作都输入口令,可以使用ssh-agent工具。ssh-agent会在第一次输入口令时记住口令,在本次会话后续使用到private key的操作中,ssh-agent自动使用第一次输入的口令,不再要求用户输入。参考如何在Windows中使用ssh-agent。
该方式避免了私匙失窃的风险,但操作过于繁琐,如果不想每一次操作都输入口令,可以使用ssh-agent工具。ssh-agent会在第一次输入口令时记住口令,在本次会话后续使用到private key的操作中,ssh-agent自动使用第一次输入的口令,不再要求用户输入。参考如何在Windows中使用ssh-agent。