Что возвращает ssh -vvv git@repo
?
Пока этот ssh-запрос не работает, никакая операция git не будет работать с сервером git@repo
.
И если ssh сообщает, что это такпопробуйте предложить publickey, затем вы должны еще раз проверить, правильно ли он был добавлен в файл ~git/.ssh/authorized_keys
на сервере репо.
Вот выдержка из примера сеанса 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 будет знать, какой пользователь, имя хоста и точный полный путь к общедоступномуключ для использования.