2017-03-28 2 views
0

bashprofile 에 넣을 수있는 간단한 일반 함수를 작성하여 원하는 호스트에 콘솔을 보호하는 방법은 무엇입니까?bash_profile에서 함수를 작성하는 방법

하지만 내 보안 콘솔은 점프 호스트를 통과해야합니다. 그게 문제 야.

function func_name() { 
ssh jumphostname; 
sc $hostname # from jump host secure console to another host given as input from terminal 
} 

이 기능은 호스트를 점프하기 위해 로그인 만하고 거기에서 다른 호스트로 보안 콘솔을 이동하지 않습니다.

-bash-4.1 $ FUNC_NAME host.me.com 날이 불가능 대한

기능입니다 jumphost를 통해 host.me.com에 콘솔 제공해야합니까? 스크립트를 작성해야합니까?

+3

아니 당신은 훨씬 더 구체적으로해야하고, 난 당신이 다시 단어가 더 적합 할 수있는 질문을,이 떠들썩한 파티 함수를 작성하는 방법에 대해 많이 아니므로 제안하지만, 로컬에서 SSH 원격 제어에 대한 자세한 역. 난 당신이 뭘 하려는지 조립하려고하면 – hmedia1

+0

, 궁금와 끝까지 왜 수 거기에서 그냥'ssh를 사용자 @의 host' 작업? 제가 말한 것처럼, 좀 더 구체적이고 사용 사례 시나리오를 제공하면 사람들이 도움을 줄 수 있습니다. 다목적 원격 제어와 예외 처리를 위해 나는 종종'expect' wrappers를 사용한다 – hmedia1

+0

예. 나는 더 구체적인 질문을했다. [: SSH : – stackuser

답변

-2

그것 당신이 경우 멕시코에서 [... 당신이 원하는 다음은 올바른 sintax은 ...

function con.sole 
{ 
    if [ ssh jumphostname ]; then 
     sc $1; 
    else 
     echo "host not available" 
    fi 
} 

인사 사이에 공백을두고 해달라고 때문에!

+0

공간을 떠난 후도는 -bash 있었다 예상 단항 연산자는 그래서 난 작은 따옴표를 추가했다. 지금은 작동하지만 실제 문제는 여전히 존재합니다. – stackuser

+0

무엇을하려고합니까? 서버를 연결하고 다른 서버에 연결 하시겠습니까? ... local-> server1-> server2? –

+0

쉘에서 무엇을 의미하는지 알아야한다고 생각합니다. 그룹화 연산자가 아닙니다. – chepner

0

변수 $()으로 명령을 시뮬레이트하지 않으면 테스트 [ ]에서 명령을 사용하지 마십시오. 아직도 확실하지 않다면 SSH 테스트에 뭔가를 반환합니다. SSH에 연결하려면 TTY이 필요합니다. 이것은 문제를 일으킬 것입니다!

SSH없이 예 ...

[email protected]:~$ if [ "$(cat ~/test.txt)" ]; then echo "Hello World"; else echo "failed"; fi 
Hello World 
[email protected]:~$ if [ "$(cat /this/file/dont/exsist 2>/dev/null)" ]; then echo "Hello World"; else echo "failed"; fi 
failed 

추가 :

-bash : SC : 명령이 당신이하지 않은 것을 의미

찾을 수 없습니다 호스트에 spreadsheet을 설치하십시오.

이 기능은 호스트를 점프하기 위해서만 로그인하지만 거기에서 다른 호스트에 secureconsole에는 로그인하지 않습니다.

뭘하려는거야?

SSH은 무엇을 알고 있습니까? 리모컨 TTYs 또는 다른 단어로 열립니다. 리모컨 보안 콘솔을 엽니 다.

스크립트를 실행하고 그 안에 ssh 로그인을 넣을 수 없다면, 그 후에 모든 코드가 새 콘솔에 있다고 생각하거나 그렇게되지 않을 것이라고 생각합니다.

콘솔에서 ssh을 실행할 수 있으므로 자신의 TTY를 얻고 몇 가지 명령을 입력 할 수 있습니다.또는 당신은 훨씬 더 밤은 ssh

echo "Hello World!" | ssh [email protected] cat 

를 통해 당신이 당신과 함께 할 수 있지만 당신은 또한 몇 가지 변수 또는 텍스트를 전달할 수 있습니다

ssh [email protected] echo "Hello World!" 

같은 스크립트에서 몇 가지 명령과 함께 ssh를 사용 해서는 안된다!

링크 아래
+0

우리는 bash_profile에 별명을 작성합니다. 그것은 통과합니다. 하지만 로그인 후 해당 점프 호스트에서 해당 호스트에 sc 명령을 실행하려면. – stackuser

+0

'ssh user @ host sc'는 당신이 찾고있는 것입니까? .. 내 게시물을 업데이트했습니다. – suleiman

0

것은 당신이 출력 예를 들어 앞서

ssh [email protected]_address "command to execute" 

갈 도움이 될 것이다 :

[email protected]:~/work/images$ ssh [email protected] echo "hai" 
[email protected]'s password: 
hai 
[email protected]:~/work/images$ 

ssh를 arul의 @ localhost를 명령 로그인합니다 "에코 하이는"명령은 "현재 프롬프트에 로그인 인쇄

인용 : https://www.cyberciti.biz/faq/unix-linux-execute-command-using-ssh/

+0

StackOverflow에 오신 것을 환영합니다. 링크와 직접 관련이있는 항목을 포함하여 실제로 의도 한 답변을 직접 설명하고 추가 정보 만 연결하면 링크 전용 답변이 향상 될 수 있습니다. 예 : 여러분의 소중한 입력에 대한 – kojiro

+0

감사 스크립트 위 –

0

것은 내가 일을 작성합니다 이는 별도의 명령, test와 동일

con.sole() { 
    if ! ssh -T jumphostname true; then 
     printf 'Jump host "%s" not available.\n' jumphostname >&2 
     return 1 
    fi 
    sc "[email protected]" 
} 

The square brace isn't part of the if statement syntax.이다.

+0

를 @kojiro https://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers 것은 jumphost까지 저를 가져옵니다. 그것은 캔트 SC 그 con.sole hostname.com 경고 후 : 영구적으로 추가 'jumphost.com (RSA) 알려진 호스트의 목록에 추가합니다. -bash : sc : 명령을 찾을 수 없습니다. – stackuser

관련 문제