I’m trying to add a private git repo onto cPanel but have ran into permission issues and not sure where I’m going wrong
I have generated the SSH keys in cPanel at the ‘SSH Access’ section. I then added the key onto the private repo in git at the ‘Deploy keys’ section.
But when I try to clone the repo on cPanel I get the error:
Error: “/usr/local/cpanel/3rdparty/bin/git” reported error code “128”
when it ended: Permission denied (publickey). fatal: Could not read
from remote repository. Please make sure you have the correct access
rights and the repository exists.
I’m trying to clone with SSH [email protected]:myusername/myrepo.git
Have I done something wrong or missed a step?
15
Answers
did you get to the bottom of this I was experiencing the same after removing the pass phrase from the key it worked
I have found an issue with the SSH key import within cPanel, when I import a private key via the cPanel SSH Key web interface it creates the file but includes the characters
^M
as line breaks.When I edited the file via SSH and copied the original key from my desktop the Git operation via cPanel worked straight away.
Solution
Edit the private key after import and ensure there are no line-ending or other stray characters.
CLONE GITHUB REPOSITORY TO CPANEL STEPS
steps 1. Cpanel -> SSH Access -> Generate New Key(without enter pasword)->after generated key go to under public key-> manage-> authorize (make authoize) -> back, now view/download-> copy key
Step 2. Go Github-> https://github.com// -> Settings(repository setting) ->Deploy Keys (rights side)-> add deploy key (give title,and add key)-> done
Step 3. Go to Cpanel -> Git™ Version Control -> clone url : [email protected]:/<private_repository_name>.git
-> give_repository_path
-> give_ repository_name
-> create
Step 4. manage repository from list-> Manage -> pull or deploy from Github -> Click on Update from Remote: works perfectly(any files edit or delete you fetch/pull from GitHub now)
After many hours i find this solution and it solved
My problem was caused by the way cPanel generates ssl keys. When you create a key cPanel, forced you to insert a passphrase. But GitLab is not compatible with such a key apparently.
The solution was to create the key on the local machine and import it to cPanel. Passphrases are for extra security when the key is stolen
as @vladmacovi said and i test it in my cpanel and its work
1- login to cpanel and gitlab
2- goto https://gitlab.com/profile/keys
3- Paste your public SSH key, which is usually contained in the file ‘~/.ssh/id_ed25519.pub’ or ‘~/.ssh/id_rsa.pub’ and begins with ‘ssh-ed25519’ or ‘ssh-rsa’. Don’t use your private SSH key.
4- create a key with this command:
5- this command create pub file and ppk file so you can open content of pub file.
6- goto cpanel /frontend/paper_lantern/version_control/index.html#/list/
create a new git repo then click on ssh then from: /frontend/paper_lantern/telnet/index.html
like this picture:
7- cleck on import key from : /frontend/paper_lantern/telnet/keys/importkey.html
then paste your key
8- then click on import button then authorized it
9- configure git form like this picture
For me the problem remains, even doing all the steps of the different answers:
got the same problem with @nodachi, already did all the previous solution given above.
the problem is the "private" repository in github. When i change my repo into "public", and then create repository again in my cpanel, it works.
i dont know why, the SSH access should be allowed to access the private repo on github, but it wont give the access.
Cpanel will not let you create key without password so you have to choices:
Using Through github/ftp auto upload private repositoy to cpanel
GIthub Private repository with Cpanel Uploading step with one commit command from local pc repository to github and cpanel both
create git repository in github (https://docs.github.com/en/get-started/quickstart/create-a-repo)
after create an directory in local with github setup as following command
step 1. create FTP account into cpanel
step 2. in Github Go to your private repository on GitHub, click on SETTINGS, then click on SECRETS to add your FTP account username, password and server IP
step 3. On the SECRETS tab, click the NEW REPOSITORY SECRET BUTTON on the right hand side, to add a new secret
step 4. Add the details as follows (Using your own details)
The names should be FTP_SERVER, FTP_USERNAME,FTP_PASSWORD
and the values should be your own secret details respectively and click the ADD SECRET BUTTON
The next step is to create a GitHub action workflow; The GitHub actions take place on the GitHub server.
In your GitHub repo, click on ACTIONS
Step 5. Click NEW WORKFLOW, You can choose a workflow template but for the sake of this tutorial, we will be creating our own workflow.
Click on any template (I selected the first template), then edit the configuration (“yaml” configuration file)
Step 6. Change the file name to your own choice. (I changed mine to deployCpanel.yml), make sure it has the .yml file extension
step 7. Place the below configuration code in the file
Make sure you change the branch where you want your codes to be deployed from, in my case I am deploying from master branch
Step 8 . Once you are done, click on START COMMIT button on the right hand side
This will automatically create a /.github/workflows/directory and places the configuration file in it.
Anytime you push your codes to the master branch, it automatically deploys to cPanel via your FTP account.
I had the same problem with the interface This guide is really complete and helped me fix it using the terminal
https://docs.cpanel.net/knowledge-base/web-services/guide-to-git-set-up-access-to-private-repositories/
*Previous: You must have enabled advanced>Terminal (shell?) Otherwise contact your hosting provider and asked for it
*Create the ssh_key with NO passphrase just press Enter(replace repo with your repo name, username with your cpanel user and example.com with your cpanel main domain)
*Doesn’t say so but neccesary: Authorize public ssh_key generated in SSH access > manage ssh keys > manage
Click "authorize"
*Copy public ssh key found in "view/download"
*I was using github so if you too, go to general settings
Name it as you want too and paste the complete public ssh key
*Now test it (replace repo with your repo name)
If a question (yes/no) about different fingerprints is raised write yes. This will add github to a known hosts file
If everything’s correct, confirm the greeting
*I have multiple repositories (even if you currently don’t, it’s most likely to happen) so
domains > list domains
click home icon
show hidden folders at the top right hand corner settings>show hidden files
inside .ssh folder, create a config file (extension isn’t needed)
Write this for each repo you need(again, replace "repo" with your repo name and "home/user" with your root path -in my case home/cpanelUser-)
*Fiiiiinally, clone the repo (replace "repo" with your repo name and "user" with your GITHUB user this time)
Now, it should be done
Took me all afternoon and night :/ If you find how to auto deploy please comment
no SSH key WAY
My repository belongs to my organization and I followed Ghanshyam Nakiya answer but the Error was not fixed.
So I decide to Generate an access token to clone the git repository:
WARNING: this method has Some Risks like access-token leaks So do it at your own risk
Copy your token at the first Git Repo URL like this:
https://[email protected]/YOUR-USERNAME/YOUR-REPOSITORY
Now you can use this URL to put on Clone URL field on Cpanel and clone:
Try this method.
open
Tarminal
from Cpanel;run below command to generate new ssh-key
Goto .ssh folder in your File Root, Edit id_rsa.pub and copy the content
login to github goto setting –> Deploy key –> add deploy keys –> paste the copied content.
and then run the below command
if it return this
Hi username/reponame You've successfully authenticated, but GitHub does not provide shell access.
you’re ready go.No of the above answers worked for me, I still had the error:
Please make sure you have the correct access rights and the repository exists
By debugging with the command
ssh -T [email protected]
, I had this error:ERROR: You're using an RSA key with SHA-1, which is no longer allowed. Please use a newer client or a different key type.
I coudl resolve it and fix my problem by regenerating a correct SSH certificated accepted by github with this command:
ssh-keygen -t ecdsa -b 521 -C "email@host"
without passphraseI was following the Official cPanel tutorial and got stuck with the
reported error code “128” when it ended: Permission denied (publickey)
error when trying to clone a private repository from Github.This blog helped me out https://gist.github.com/adamjohnson/5682757. Specially the part where it indicates that Github requires you to use SSH keys with
id_rsa
andid_rsa.pub
names respectively.In my case, while generating the ssh key from Cpanel’s terminal I was putting the wrong URL for the site. In this command:
ssh-keygen -t rsa -f ~/.ssh/repo -b 4096 -C "[email protected]"
I was dropping the http://www.sitename.come and was writing sitename.com, that was my issue.This worked for me:
ssh-keygen -t rsa -b 4096 -C ""
from cpanel SSH Access: View/Download Public Keys named
id_rsa
https://github.com/username/private-repo/settings/keys click
Add Deploy key
back to cpanel Git Version Control click
Create
then Clone URL[email protected]:user-name/private-repo.git
Repository Path where you like to clone on cpanel