ssh -vvv git@repo
回报是什么?
只要这个 ssh 请求不起作用,任何 git 操作都不会与git@repo
服务器一起工作。
如果 ssh 报告它确实尝试提供公钥,那么您必须仔细检查它是否已正确添加到~git/.ssh/authorized_keys
repo 服务器上的文件中。
这是有效的 ssh 会话示例的摘录:
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug3: start over, passed a different list publickey,password,keyboard-interactive
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /p/.ssh/mypubkey
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: fp f8:d9:7...:cf
debug3: sign_and_send_pubkey
debug1: read PEM private key done: type RSA
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug3: ssh_session2_open: channel_new: 0
debug2: channel 0: send open
debug1: Entering interactive session.
两条评论:
- 我的
%HOME%
参考不是%HOMEDIR%
自定义驱动器(p:\
),这是工作中的本地约定,可能不适用于您。
- 我的公钥/私钥的名称不符合默认标准 (
id_rsa.pub
/ id_rsa
)
我config
在目录中添加了一个文件,%HOME%\.ssh
以便明确命名公钥文件:
host gitrepo
user git
hostname repo
identityfile ~/.ssh/mypubkey
这样,我可以简单地输入: ssh gitrepo
,ssh 就会知道要使用哪个用户、主机名和公钥的确切完整路径。