2012-04-11 2 views
1

bash 스크립트에서 명령을 실행하는 중 현재 이상한 문제가 있습니다. 내 스크립트가이 명령을 가지고bash 스크립트에서 ssh IPAddressA -l user "ssh -l IPAddressB ls"를 실행하는 데 문제가 발생했습니다.

, IPAddressA & IPAddressB가 서로 접근이 기계의 하드 코딩 된 IP 주소로 대체 ​​될 것이다

ssh IPAddressA -l root "ssh -l root IPAddressB ls" 

.

사용자는 질문 할 때마다 암호를 입력합니다. 그러나 IPAddressA의 암호를 입력하면이 오류가 발생합니다.

[email protected]'s password: 
Permission denied, please try again. 
Permission denied, please try again. 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). 
]$ 

답변

1

내부 SSH 암호를 묻는 메시지가 표시되면 대화 형 키보드를 사용할 수 없습니다. ssh 터널링으로 원하는 것을 얻을 수 있습니다.

ssh [email protected] -L2222:IPAddressB:22 -Nf 
ssh [email protected] -p2222 

첫 줄 IPAddressB:22에 있으므로 로컬 호스트 2222 포트 포인트 터널을 열 ANDD 명령을 실행하지 않고 배경 (-f)의 SSH 공정을 가지고 (-N)
번째 줄 개방 새로운 통해 IPAddressB:22 연결 터널

2

그에게 더 나은 트릭있다 ..

가 ~/스푸핑/설정에서과 같이 구성 IPAddressA에 대한 호스트 항목을 추가

Host IPAddressA 
    User someguy 
    ProxyCommand ssh -q [email protected] nc -q0 %h 22 

이 방법의 매끄러운 점은 쉘 명령 줄에 별다른 문제없이 IPAddressB로 scp/sftp 할 수 있다는 것입니다.

보너스 포인트를 얻으려면 공개 키 쌍을 생성하고 ~/.ssh/authorized_keys의 IPAddressA 및 IPAddressB에 공개 키를 놓습니다. 암호를 입력하지 않으면 입력을 방해하지 않습니다.

또한 단일 진입 점만있는 원격 LAN에 액세스하려는 경우 - SSH는 실제로 VPN 클라이언트로 작동하여 프록시 호스트를 브리징합니다. 물론 리모트 엔드는 tap/tun 장치를 지원해야합니다 (로컬 시스템과 마찬가지로) ... 그러나 이미 모든 것이 있으면 다리가 막히지 않습니다.

+0

고맙습니다. 나는 VPN 부분을 좋아한다. –

관련 문제