2012-08-29 6 views
1

하드 코딩 된 암호를 ssh 연결 인증에 전달하는 쉘 스크립트를 작성할 수 있다는 것을 알고 있습니다 (expect 사용). 그러나 내가 필요한 것은 약간 더 복잡합니다.두 개의 연속 ssh 연결을 자동화하는 스크립트

제 대학교에는 저에게 임명 된 데스크톱 컴퓨터가 있습니다. 먼저이 서버에 ssh 연결을 한 다음이 서버에서 내 지정된 데스크탑 컴퓨터로 다른 ssh 연결을 만들어이 컴퓨터에 원격으로 연결할 수 있습니다. 이 간다 같은 :


localuser의 @의 localcomputer : ~ $ ssh를 -X 사용자 이름 @의 serveraddress

사용자 이름 @의 serveradress 암호 :

서버 $ ssh를 -X 사용자 이름 @의 remotecomputeraddress

사용자 이름 @ 원격 컴퓨터 주소 암호 :

사용자 이름 @ remotecomputer : ~>


위 스크립트를 자동화 할 수있는 스크립트를 작성할 수 있습니까? 두 개의 연속적인 ssh 연결 수행)?

미리 감사드립니다.

ps : 로컬 및 원격 컴퓨터 모두 Linux에서 실행 중입니다.

답변

1

당신은 대화 형으로이 작업을 수행 할 수 있습니다 파이프 아니다

ssh -t -X [email protected] ssh -t -X [email protected] 

주 - 두 번째 ssh 첫 번째 ssh에 의해 생성 된 연결에서 실행하는 명령입니다. -t 옵션은 상호 작용 (암호 수집뿐만 아니라 궁극적 인 목표 - 원격 시스템의 대화식 세션)에 필요한 의사 -TTY를 할당하는 데 필요합니다. expect으로 마무리하십시오. ;-)

올바른 개인/공개 키 쌍을 설정하기위한 보너스 포인트와 ssh-agent 암호가 필요하지 않도록 (물론, 보안 상 이유로 허용되지 않음).같은 http://stromberg.dnsalias.org/~strombrg/deep-ssh.html

그래서 당신은 암호없이, passphraseless 인증을 설정 (또는 암호에 대한 에이전트를 사용) 것 : http://stromberg.dnsalias.org/~strombrg/ssh-keys.html

+0

친애하는 twalberg, 나는 당신의 방법을 시도했다. 나는 처음으로 ssh 접속을 끝냈다. 이 후 내 스크립트가 중단되고 첫 번째 ssh 연결을 종료 할 때만 계속됩니다. 제대로 작동하려면 어떻게해야합니까? --- #는/usr/빈/ remotecomputer 산란 ssh를 -t -X remoteuser @ serveraddress ssh를 -t -X remoteuser @를 기대하는 것은 "remoteuser의 @의 serveraddress의 암호를 기대 : 나는 아래 내 스크립트를 추가했습니다! \ 연구 – Aeronaelius

+0

감사 twalberg, 나는 -t 옵션의 조합 사용하여 내 목표를 달성하기 위해 관리 --- 이 상호 작용 "R" 보내기 "\ my_password 관련" 보내기 "my_password 관련이 remoteuser의 @의 remotecomputer의 암호" 예상 상호 작용 " 암호가없는 키. – Aeronaelius

+0

여기이 질문을 연장하고 싶습니다. rsync를 사용하여 파일을 전송할 수 있습니까? 예를 들어 server1에서 server2까지 server2를 통해 말할 수 있습니까? 고맙습니다. – Vijay

0

예, 가능합니다.

당신이 당신의 expect_script에서 스크립트를 제외하고이 가정하면 :

cat expect_script | ssh -X [email protected] sh -s 

당신이 ssh -X [email protected]를 실행해야이 expect_script에서.

그리고 물론 두 호스트 모두에 공개 키를 설치하고 암호없는 인증을 사용할 수 있습니다.

0

는 내가 다시 잠시 강타 경로로이 작업을 수행하는 것을 썼다

: 그리고!

deep-ssh [email protected][email protected] command 

배쉬가 뿌려 경우, 당신은 백 슬래시로 이스케이프 할 수 있습니다.

이전 타이머는 이것이 UUCP 경로가 지정된 방법임을 인식합니다.

관련 문제