Git Clone ssh authentication through bash script





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







1















I'm using Raspbian.



I did successfully added the key and I can clone a private repo with ssh auth manually, using the command git clone git@github.com:USER/repo.git.



Here is how I set it up:



ssh-keygen -t rsa -b 4096 -C “email”
eval "$(ssh-agent -s)"
ssh-add -k ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub


However, if I try to run git clone command through a bash script, I get Permission denied (publickey).



I'm running the script as "pi", with sudo. The script starts with #! /bin/bash and whoami (on the script) returns root, instead of "pi".



Could someone help me out, please?



Thanks!










share|improve this question

























  • Are you running the script manually as root?

    – ScottBro
    Nov 26 '18 at 21:19











  • @ScottBro, I think so, as I'm using "sudo ./script.sh"

    – André Luís
    Nov 26 '18 at 21:34




















1















I'm using Raspbian.



I did successfully added the key and I can clone a private repo with ssh auth manually, using the command git clone git@github.com:USER/repo.git.



Here is how I set it up:



ssh-keygen -t rsa -b 4096 -C “email”
eval "$(ssh-agent -s)"
ssh-add -k ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub


However, if I try to run git clone command through a bash script, I get Permission denied (publickey).



I'm running the script as "pi", with sudo. The script starts with #! /bin/bash and whoami (on the script) returns root, instead of "pi".



Could someone help me out, please?



Thanks!










share|improve this question

























  • Are you running the script manually as root?

    – ScottBro
    Nov 26 '18 at 21:19











  • @ScottBro, I think so, as I'm using "sudo ./script.sh"

    – André Luís
    Nov 26 '18 at 21:34
















1












1








1








I'm using Raspbian.



I did successfully added the key and I can clone a private repo with ssh auth manually, using the command git clone git@github.com:USER/repo.git.



Here is how I set it up:



ssh-keygen -t rsa -b 4096 -C “email”
eval "$(ssh-agent -s)"
ssh-add -k ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub


However, if I try to run git clone command through a bash script, I get Permission denied (publickey).



I'm running the script as "pi", with sudo. The script starts with #! /bin/bash and whoami (on the script) returns root, instead of "pi".



Could someone help me out, please?



Thanks!










share|improve this question
















I'm using Raspbian.



I did successfully added the key and I can clone a private repo with ssh auth manually, using the command git clone git@github.com:USER/repo.git.



Here is how I set it up:



ssh-keygen -t rsa -b 4096 -C “email”
eval "$(ssh-agent -s)"
ssh-add -k ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub


However, if I try to run git clone command through a bash script, I get Permission denied (publickey).



I'm running the script as "pi", with sudo. The script starts with #! /bin/bash and whoami (on the script) returns root, instead of "pi".



Could someone help me out, please?



Thanks!







bash github






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 26 '18 at 21:20







André Luís

















asked Nov 26 '18 at 21:12









André LuísAndré Luís

295




295













  • Are you running the script manually as root?

    – ScottBro
    Nov 26 '18 at 21:19











  • @ScottBro, I think so, as I'm using "sudo ./script.sh"

    – André Luís
    Nov 26 '18 at 21:34





















  • Are you running the script manually as root?

    – ScottBro
    Nov 26 '18 at 21:19











  • @ScottBro, I think so, as I'm using "sudo ./script.sh"

    – André Luís
    Nov 26 '18 at 21:34



















Are you running the script manually as root?

– ScottBro
Nov 26 '18 at 21:19





Are you running the script manually as root?

– ScottBro
Nov 26 '18 at 21:19













@ScottBro, I think so, as I'm using "sudo ./script.sh"

– André Luís
Nov 26 '18 at 21:34







@ScottBro, I think so, as I'm using "sudo ./script.sh"

– André Luís
Nov 26 '18 at 21:34














1 Answer
1






active

oldest

votes


















2














SSH attemps to read the keys from $HOME/.ssh. Since you are running as root, the script most likely fails to find anything under /home/root/.ssh.



The fix? Try sudo -E, which preserves the environment variables. For more info, consult sudo(8).






share|improve this answer
























  • Awesome! It worked. Is there a way to set the "-E" option inside the script, so user would just run the script with "sudo ./script.sh"? Thanks!

    – André Luís
    Nov 26 '18 at 21:50











  • I have sudo -E as an alias for myself. It is not recommended to elevate privileges in a script. It violates the principle of "least surprise". If this solves your problem, please mark the answer as accepted ;-)

    – Elias Toivanen
    Nov 26 '18 at 22:03












Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53489140%2fgit-clone-ssh-authentication-through-bash-script%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









2














SSH attemps to read the keys from $HOME/.ssh. Since you are running as root, the script most likely fails to find anything under /home/root/.ssh.



The fix? Try sudo -E, which preserves the environment variables. For more info, consult sudo(8).






share|improve this answer
























  • Awesome! It worked. Is there a way to set the "-E" option inside the script, so user would just run the script with "sudo ./script.sh"? Thanks!

    – André Luís
    Nov 26 '18 at 21:50











  • I have sudo -E as an alias for myself. It is not recommended to elevate privileges in a script. It violates the principle of "least surprise". If this solves your problem, please mark the answer as accepted ;-)

    – Elias Toivanen
    Nov 26 '18 at 22:03
















2














SSH attemps to read the keys from $HOME/.ssh. Since you are running as root, the script most likely fails to find anything under /home/root/.ssh.



The fix? Try sudo -E, which preserves the environment variables. For more info, consult sudo(8).






share|improve this answer
























  • Awesome! It worked. Is there a way to set the "-E" option inside the script, so user would just run the script with "sudo ./script.sh"? Thanks!

    – André Luís
    Nov 26 '18 at 21:50











  • I have sudo -E as an alias for myself. It is not recommended to elevate privileges in a script. It violates the principle of "least surprise". If this solves your problem, please mark the answer as accepted ;-)

    – Elias Toivanen
    Nov 26 '18 at 22:03














2












2








2







SSH attemps to read the keys from $HOME/.ssh. Since you are running as root, the script most likely fails to find anything under /home/root/.ssh.



The fix? Try sudo -E, which preserves the environment variables. For more info, consult sudo(8).






share|improve this answer













SSH attemps to read the keys from $HOME/.ssh. Since you are running as root, the script most likely fails to find anything under /home/root/.ssh.



The fix? Try sudo -E, which preserves the environment variables. For more info, consult sudo(8).







share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 26 '18 at 21:39









Elias ToivanenElias Toivanen

31016




31016













  • Awesome! It worked. Is there a way to set the "-E" option inside the script, so user would just run the script with "sudo ./script.sh"? Thanks!

    – André Luís
    Nov 26 '18 at 21:50











  • I have sudo -E as an alias for myself. It is not recommended to elevate privileges in a script. It violates the principle of "least surprise". If this solves your problem, please mark the answer as accepted ;-)

    – Elias Toivanen
    Nov 26 '18 at 22:03



















  • Awesome! It worked. Is there a way to set the "-E" option inside the script, so user would just run the script with "sudo ./script.sh"? Thanks!

    – André Luís
    Nov 26 '18 at 21:50











  • I have sudo -E as an alias for myself. It is not recommended to elevate privileges in a script. It violates the principle of "least surprise". If this solves your problem, please mark the answer as accepted ;-)

    – Elias Toivanen
    Nov 26 '18 at 22:03

















Awesome! It worked. Is there a way to set the "-E" option inside the script, so user would just run the script with "sudo ./script.sh"? Thanks!

– André Luís
Nov 26 '18 at 21:50





Awesome! It worked. Is there a way to set the "-E" option inside the script, so user would just run the script with "sudo ./script.sh"? Thanks!

– André Luís
Nov 26 '18 at 21:50













I have sudo -E as an alias for myself. It is not recommended to elevate privileges in a script. It violates the principle of "least surprise". If this solves your problem, please mark the answer as accepted ;-)

– Elias Toivanen
Nov 26 '18 at 22:03





I have sudo -E as an alias for myself. It is not recommended to elevate privileges in a script. It violates the principle of "least surprise". If this solves your problem, please mark the answer as accepted ;-)

– Elias Toivanen
Nov 26 '18 at 22:03




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53489140%2fgit-clone-ssh-authentication-through-bash-script%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

To store a contact into the json file from server.js file using a class in NodeJS

Redirect URL with Chrome Remote Debugging Android Devices

Dieringhausen