Возможно, я неправильно использую ключи Deploy для данного репозитория, или github ключи Deploy сломаны, я не знаю.
Я создал частный репозиторий. Для этого хранилища я создал SSA RSA-ключ (назовем его private_repo_key
). private_repo_key
связано с этим хранилищем Развернуть ключи (с правами чтения / записи). Я хочу использовать возможность загружать этот единственный репозиторий с удаленного (и потенциально небезопасного) сервера.
private_repo_key
на моем удаленном сервере. Это работает, я могу нажать / вытащить / из моего частного репо с этого сервера. private_repo_key
не является на локальном хосте.
С другой стороны, у меня есть глобальный ssh RSA-ключ, связанный с моей учетной записью github. Давайте назовем это global_key
. Пока я не создал private_repo_key
, я мог без проблем загружать / извлекать все свои репозитории с помощью global_key
.
Поскольку я связал private_repo_key
с хранилищем проватов, мой глобальный доступ кажется нарушенным.
Если я попытаюсь нажать на один из моих репозиториев (скажем, jreybert / vimagit) с моего локального хоста (не частного), global_key
сработает. Но после подключения это похоже на то, что github связывает это соединение с private_repo_key
, который, очевидно, не имеет права что-либо делать с этим хранилищем.
Если я пытаюсь нажать, я получаю следующую ошибку:
git push
ERROR: Permission to jreybert/vimagit denied to deploy key
fatal: Could not read from remote repository.
Мой .ssh/config
выглядит так:
Host github.com
ForwardX11 no
User git
Hostname github.com
IdentityFile ~/.ssh/id_rsa_github
И если я попытаюсь подключиться к github через ssh, я получу такой ответ:
ssh -T github.com
Hi jreybert/private-repo! You've successfully authenticated, but GitHub does not provide shell access.
С подробным подтверждением, это подтверждает, что, если соединение установлено с моим global_key
, тогда это соединение предоставляется с правами private_repo_key
:
ssh -vT github.com
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
debug1: Reading configuration data /nfs/home/jreybert/.ssh/config
debug1: /nfs/home/jreybert/.ssh/config line 70: Applying options for github.com
debug1: /nfs/home/jreybert/.ssh/config line 94: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 50: Applying options for *
debug1: Connecting to github.com [140.82.118.4] port 22.
debug1: Connection established.
debug1: identity file /nfs/home/jreybert/.ssh/id_rsa_github type 1
debug1: key_load_public: No such file or directory
debug1: identity file /nfs/home/jreybert/.ssh/id_rsa_github-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4
debug1: Remote protocol version 2.0, remote software version babeld-80573d3e
debug1: no match: babeld-80573d3e
debug1: Authenticating to github.com:22 as 'git'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: rsa-sha2-512
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: zlib@openssh.com
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: zlib@openssh.com
debug1: kex: curve25519-sha256 need=64 dh_need=64
debug1: kex: curve25519-sha256 need=64 dh_need=64
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ssh-rsa SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /nfs/home/jreybert/.ssh/known_hosts:2
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-rsa,rsa-sha2-512,rsa-sha2-256,ssh-dss>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/jerome/.ssh/id_rsa_github_private_repo
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Enabling compression at level 6.
debug1: Authentication succeeded (publickey).
Authenticated to github.com ([140.82.118.4]:22).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: pledge: network
debug1: Requesting authentication agent forwarding.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
Hi jreybert/private-repo! You've successfully authenticated, but GitHub does not provide shell access.
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 2824, received 2228 bytes, in 0.2 seconds
Bytes per second: sent 11693.7, received 9225.8
debug1: Exit status 1
debug1: compress outgoing: raw data 149, compressed 135, factor 0.91
debug1: compress incoming: raw data 135, compressed 149, factor 1.10
Играя с ssh-agent на моем локальном хосте, я смог получить нужные права, но я не совсем понимаю, как и почему.
Что я пропустил?