rails run shell command with user input
I want to run shell command from rails app controller.
My app code is:
cmd = "openssl genrsa -des3 -out testfolder/testkey.key 1024"
system cmd
than shell will ask me password, so if you run this command from terminal you can input password, but if I run from controller I can't.
I don't want to use rails OPENSSL, for some reasons.
I tried to google but I have no result.
Also I tried something like this:
cmd = "openssl genrsa -des3 -out testfolder/testkey.key 1024"
system cmd
system 'echo', '111111Passs'
This is not solution of my problem.
My question is:
how to pass password from controller to shell?
Than how I can submit this command? (simulate press on ENTER on my keyboard)
Thanks
ruby-on-rails ruby linux shell
add a comment |
I want to run shell command from rails app controller.
My app code is:
cmd = "openssl genrsa -des3 -out testfolder/testkey.key 1024"
system cmd
than shell will ask me password, so if you run this command from terminal you can input password, but if I run from controller I can't.
I don't want to use rails OPENSSL, for some reasons.
I tried to google but I have no result.
Also I tried something like this:
cmd = "openssl genrsa -des3 -out testfolder/testkey.key 1024"
system cmd
system 'echo', '111111Passs'
This is not solution of my problem.
My question is:
how to pass password from controller to shell?
Than how I can submit this command? (simulate press on ENTER on my keyboard)
Thanks
ruby-on-rails ruby linux shell
Have a look at stackoverflow.com/questions/24514307/…
– lacostenycoder
Nov 21 '18 at 22:13
Please can you write example ? it will be something like this ?:cmd = "openssl genrsa -des3 -out testfolder/test.key 1024 -S 111111Password"
– Boris Kuzevanov
Nov 21 '18 at 22:44
add a comment |
I want to run shell command from rails app controller.
My app code is:
cmd = "openssl genrsa -des3 -out testfolder/testkey.key 1024"
system cmd
than shell will ask me password, so if you run this command from terminal you can input password, but if I run from controller I can't.
I don't want to use rails OPENSSL, for some reasons.
I tried to google but I have no result.
Also I tried something like this:
cmd = "openssl genrsa -des3 -out testfolder/testkey.key 1024"
system cmd
system 'echo', '111111Passs'
This is not solution of my problem.
My question is:
how to pass password from controller to shell?
Than how I can submit this command? (simulate press on ENTER on my keyboard)
Thanks
ruby-on-rails ruby linux shell
I want to run shell command from rails app controller.
My app code is:
cmd = "openssl genrsa -des3 -out testfolder/testkey.key 1024"
system cmd
than shell will ask me password, so if you run this command from terminal you can input password, but if I run from controller I can't.
I don't want to use rails OPENSSL, for some reasons.
I tried to google but I have no result.
Also I tried something like this:
cmd = "openssl genrsa -des3 -out testfolder/testkey.key 1024"
system cmd
system 'echo', '111111Passs'
This is not solution of my problem.
My question is:
how to pass password from controller to shell?
Than how I can submit this command? (simulate press on ENTER on my keyboard)
Thanks
ruby-on-rails ruby linux shell
ruby-on-rails ruby linux shell
asked Nov 21 '18 at 22:11
Boris KuzevanovBoris Kuzevanov
5731717
5731717
Have a look at stackoverflow.com/questions/24514307/…
– lacostenycoder
Nov 21 '18 at 22:13
Please can you write example ? it will be something like this ?:cmd = "openssl genrsa -des3 -out testfolder/test.key 1024 -S 111111Password"
– Boris Kuzevanov
Nov 21 '18 at 22:44
add a comment |
Have a look at stackoverflow.com/questions/24514307/…
– lacostenycoder
Nov 21 '18 at 22:13
Please can you write example ? it will be something like this ?:cmd = "openssl genrsa -des3 -out testfolder/test.key 1024 -S 111111Password"
– Boris Kuzevanov
Nov 21 '18 at 22:44
Have a look at stackoverflow.com/questions/24514307/…
– lacostenycoder
Nov 21 '18 at 22:13
Have a look at stackoverflow.com/questions/24514307/…
– lacostenycoder
Nov 21 '18 at 22:13
Please can you write example ? it will be something like this ?:
cmd = "openssl genrsa -des3 -out testfolder/test.key 1024 -S 111111Password"
– Boris Kuzevanov
Nov 21 '18 at 22:44
Please can you write example ? it will be something like this ?:
cmd = "openssl genrsa -des3 -out testfolder/test.key 1024 -S 111111Password"
– Boris Kuzevanov
Nov 21 '18 at 22:44
add a comment |
2 Answers
2
active
oldest
votes
You can try passing the passphase through an argument (not recommended):
openssl genrsa -des3 -out testfolder/testkey.key -passout pass:SECRET_PASS 1024
A more secure option is to write the passphrase to a temporary file and use this:
openssl genrsa -des3 -out testfolder/testkey.key -passout file:passphrase.txt 1024
Answer shamelessly lifted from this SO thread which has much more detail and better explanations.
it's work thank you very much
– Boris Kuzevanov
Nov 22 '18 at 15:46
please can you explain me what does it mean -passout ?
– Boris Kuzevanov
Nov 22 '18 at 15:48
"-passout arg output file pass phrase source" source for the pass phrase
– richflow
Nov 24 '18 at 1:51
add a comment |
require 'pty'
require 'expect'
PTY.spawn("openssl genrsa -des3 -out testfolder/testkey.key 1024") do |reader, writer|
reader.expect(/Enter pass phrase/)
writer.puts("<password>")
end
please, explain me this line ` reader.expect(/Enter pass phrase for vendor/testkey.key/)` thanks
– Boris Kuzevanov
Nov 21 '18 at 22:18
when the output from the shell matches that string, the password will get inputted into the shell
– Lenin Raj Rajasekaran
Nov 21 '18 at 22:19
so I need to copy exactly terminal answer and paste in this line?
– Boris Kuzevanov
Nov 21 '18 at 22:21
I think even regex works. so just try something shorter likeEnter pass phrase
– Lenin Raj Rajasekaran
Nov 21 '18 at 22:22
It's doesn't work :(
– Boris Kuzevanov
Nov 21 '18 at 22:36
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53421150%2frails-run-shell-command-with-user-input%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can try passing the passphase through an argument (not recommended):
openssl genrsa -des3 -out testfolder/testkey.key -passout pass:SECRET_PASS 1024
A more secure option is to write the passphrase to a temporary file and use this:
openssl genrsa -des3 -out testfolder/testkey.key -passout file:passphrase.txt 1024
Answer shamelessly lifted from this SO thread which has much more detail and better explanations.
it's work thank you very much
– Boris Kuzevanov
Nov 22 '18 at 15:46
please can you explain me what does it mean -passout ?
– Boris Kuzevanov
Nov 22 '18 at 15:48
"-passout arg output file pass phrase source" source for the pass phrase
– richflow
Nov 24 '18 at 1:51
add a comment |
You can try passing the passphase through an argument (not recommended):
openssl genrsa -des3 -out testfolder/testkey.key -passout pass:SECRET_PASS 1024
A more secure option is to write the passphrase to a temporary file and use this:
openssl genrsa -des3 -out testfolder/testkey.key -passout file:passphrase.txt 1024
Answer shamelessly lifted from this SO thread which has much more detail and better explanations.
it's work thank you very much
– Boris Kuzevanov
Nov 22 '18 at 15:46
please can you explain me what does it mean -passout ?
– Boris Kuzevanov
Nov 22 '18 at 15:48
"-passout arg output file pass phrase source" source for the pass phrase
– richflow
Nov 24 '18 at 1:51
add a comment |
You can try passing the passphase through an argument (not recommended):
openssl genrsa -des3 -out testfolder/testkey.key -passout pass:SECRET_PASS 1024
A more secure option is to write the passphrase to a temporary file and use this:
openssl genrsa -des3 -out testfolder/testkey.key -passout file:passphrase.txt 1024
Answer shamelessly lifted from this SO thread which has much more detail and better explanations.
You can try passing the passphase through an argument (not recommended):
openssl genrsa -des3 -out testfolder/testkey.key -passout pass:SECRET_PASS 1024
A more secure option is to write the passphrase to a temporary file and use this:
openssl genrsa -des3 -out testfolder/testkey.key -passout file:passphrase.txt 1024
Answer shamelessly lifted from this SO thread which has much more detail and better explanations.
answered Nov 22 '18 at 6:13
richflowrichflow
913211
913211
it's work thank you very much
– Boris Kuzevanov
Nov 22 '18 at 15:46
please can you explain me what does it mean -passout ?
– Boris Kuzevanov
Nov 22 '18 at 15:48
"-passout arg output file pass phrase source" source for the pass phrase
– richflow
Nov 24 '18 at 1:51
add a comment |
it's work thank you very much
– Boris Kuzevanov
Nov 22 '18 at 15:46
please can you explain me what does it mean -passout ?
– Boris Kuzevanov
Nov 22 '18 at 15:48
"-passout arg output file pass phrase source" source for the pass phrase
– richflow
Nov 24 '18 at 1:51
it's work thank you very much
– Boris Kuzevanov
Nov 22 '18 at 15:46
it's work thank you very much
– Boris Kuzevanov
Nov 22 '18 at 15:46
please can you explain me what does it mean -passout ?
– Boris Kuzevanov
Nov 22 '18 at 15:48
please can you explain me what does it mean -passout ?
– Boris Kuzevanov
Nov 22 '18 at 15:48
"-passout arg output file pass phrase source" source for the pass phrase
– richflow
Nov 24 '18 at 1:51
"-passout arg output file pass phrase source" source for the pass phrase
– richflow
Nov 24 '18 at 1:51
add a comment |
require 'pty'
require 'expect'
PTY.spawn("openssl genrsa -des3 -out testfolder/testkey.key 1024") do |reader, writer|
reader.expect(/Enter pass phrase/)
writer.puts("<password>")
end
please, explain me this line ` reader.expect(/Enter pass phrase for vendor/testkey.key/)` thanks
– Boris Kuzevanov
Nov 21 '18 at 22:18
when the output from the shell matches that string, the password will get inputted into the shell
– Lenin Raj Rajasekaran
Nov 21 '18 at 22:19
so I need to copy exactly terminal answer and paste in this line?
– Boris Kuzevanov
Nov 21 '18 at 22:21
I think even regex works. so just try something shorter likeEnter pass phrase
– Lenin Raj Rajasekaran
Nov 21 '18 at 22:22
It's doesn't work :(
– Boris Kuzevanov
Nov 21 '18 at 22:36
add a comment |
require 'pty'
require 'expect'
PTY.spawn("openssl genrsa -des3 -out testfolder/testkey.key 1024") do |reader, writer|
reader.expect(/Enter pass phrase/)
writer.puts("<password>")
end
please, explain me this line ` reader.expect(/Enter pass phrase for vendor/testkey.key/)` thanks
– Boris Kuzevanov
Nov 21 '18 at 22:18
when the output from the shell matches that string, the password will get inputted into the shell
– Lenin Raj Rajasekaran
Nov 21 '18 at 22:19
so I need to copy exactly terminal answer and paste in this line?
– Boris Kuzevanov
Nov 21 '18 at 22:21
I think even regex works. so just try something shorter likeEnter pass phrase
– Lenin Raj Rajasekaran
Nov 21 '18 at 22:22
It's doesn't work :(
– Boris Kuzevanov
Nov 21 '18 at 22:36
add a comment |
require 'pty'
require 'expect'
PTY.spawn("openssl genrsa -des3 -out testfolder/testkey.key 1024") do |reader, writer|
reader.expect(/Enter pass phrase/)
writer.puts("<password>")
end
require 'pty'
require 'expect'
PTY.spawn("openssl genrsa -des3 -out testfolder/testkey.key 1024") do |reader, writer|
reader.expect(/Enter pass phrase/)
writer.puts("<password>")
end
edited Nov 21 '18 at 22:19
answered Nov 21 '18 at 22:14
Lenin Raj RajasekaranLenin Raj Rajasekaran
15.9k1171113
15.9k1171113
please, explain me this line ` reader.expect(/Enter pass phrase for vendor/testkey.key/)` thanks
– Boris Kuzevanov
Nov 21 '18 at 22:18
when the output from the shell matches that string, the password will get inputted into the shell
– Lenin Raj Rajasekaran
Nov 21 '18 at 22:19
so I need to copy exactly terminal answer and paste in this line?
– Boris Kuzevanov
Nov 21 '18 at 22:21
I think even regex works. so just try something shorter likeEnter pass phrase
– Lenin Raj Rajasekaran
Nov 21 '18 at 22:22
It's doesn't work :(
– Boris Kuzevanov
Nov 21 '18 at 22:36
add a comment |
please, explain me this line ` reader.expect(/Enter pass phrase for vendor/testkey.key/)` thanks
– Boris Kuzevanov
Nov 21 '18 at 22:18
when the output from the shell matches that string, the password will get inputted into the shell
– Lenin Raj Rajasekaran
Nov 21 '18 at 22:19
so I need to copy exactly terminal answer and paste in this line?
– Boris Kuzevanov
Nov 21 '18 at 22:21
I think even regex works. so just try something shorter likeEnter pass phrase
– Lenin Raj Rajasekaran
Nov 21 '18 at 22:22
It's doesn't work :(
– Boris Kuzevanov
Nov 21 '18 at 22:36
please, explain me this line ` reader.expect(/Enter pass phrase for vendor/testkey.key/)` thanks
– Boris Kuzevanov
Nov 21 '18 at 22:18
please, explain me this line ` reader.expect(/Enter pass phrase for vendor/testkey.key/)` thanks
– Boris Kuzevanov
Nov 21 '18 at 22:18
when the output from the shell matches that string, the password will get inputted into the shell
– Lenin Raj Rajasekaran
Nov 21 '18 at 22:19
when the output from the shell matches that string, the password will get inputted into the shell
– Lenin Raj Rajasekaran
Nov 21 '18 at 22:19
so I need to copy exactly terminal answer and paste in this line?
– Boris Kuzevanov
Nov 21 '18 at 22:21
so I need to copy exactly terminal answer and paste in this line?
– Boris Kuzevanov
Nov 21 '18 at 22:21
I think even regex works. so just try something shorter like
Enter pass phrase
– Lenin Raj Rajasekaran
Nov 21 '18 at 22:22
I think even regex works. so just try something shorter like
Enter pass phrase
– Lenin Raj Rajasekaran
Nov 21 '18 at 22:22
It's doesn't work :(
– Boris Kuzevanov
Nov 21 '18 at 22:36
It's doesn't work :(
– Boris Kuzevanov
Nov 21 '18 at 22:36
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53421150%2frails-run-shell-command-with-user-input%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
Have a look at stackoverflow.com/questions/24514307/…
– lacostenycoder
Nov 21 '18 at 22:13
Please can you write example ? it will be something like this ?:
cmd = "openssl genrsa -des3 -out testfolder/test.key 1024 -S 111111Password"
– Boris Kuzevanov
Nov 21 '18 at 22:44