2013-07-30 2 views
1

:트위스트 소라 - 나는 다음과 같은 트위스트 조가 서버/클라이언트 SSH 응용 프로그램을 만들 찾고 있어요 서버/클라이언트

클라이언트 <을 --- 키 1 ---> 서버/클라이언트 < - -Key2 ---> 서버

SSH MITM 또는 명령 프락시와 같아 보입니다.

다음과 같은 비슷한 Twisted 관련 질문에 대한 답변을 읽었습니다. Twisted server-client data sharing 및 클라이언트/서버 데이터 전달에 대한 이론을 이해합니다.

내가 확신하지 못하는 부분은 사용자 인증입니다. 내 트위스티드 conch 응용 프로그램을 통해 엔드 포인트 서버에 첫 번째 클라이언트에서 로그인 세부 정보를 전달하고 싶습니다. 이렇게하는 방법이 있습니까?

또한 SSH 키 협상을 별도로 수행 할 수 있지만 자격 증명 및 입력 된 모든 명령을 서버와 클라이언트간에 전달할 수 있습니까?

답변

0

불행히도 이것은 다소 복잡합니다. SSH는 이런 종류의 MITM을 피하려고 시도합니다. 동일한 키 협상을 사용하지 않는 경우 서명하려는 문자열이 연결의 양쪽에서 다르므로 publickey 인증이 성공하지 못합니다 (자세한 내용은 RFC 섹션 7 참조).

그래도 암호 인증이 제대로 작동해야합니다. 이를 수행하는 가장 쉬운 방법은 packetReceived 메서드에서 패킷을 수신하고 해당 패킷 transport.sendPacket에 전달하는 twisted.conch.ssh.session.SSHSession 하위 클래스를 만드는 것입니다.