2013-11-27 6 views
-1

두 대의 컴퓨터 사이에 보안 네트워크 파이프를 만들어 둘 다 인증서를 사용하여 식별해야하는 클라이언트/서버 프로그램을 작성하고 있습니다. SSH 프로토콜은 내장 보안, 양측 인증 지원, 성숙도가 큰 장점을 가지고있어 완벽하게 일치하는 것으로 보입니다. 또한 하나의 열린 연결을 사용하여 많은 일반 포트를 연결하여 연결을 다중화 할 수 있습니다.SSH 프로토콜을 안전한 일반 데이터 포트로 사용할 수 있습니까?

아이디어는 항상 켜져있는 연결 (이 프로그램은 클라이언트와 서버 사이에 전용선이 있음)을 만들고, 필요할 때마다 포트를 여는 것입니다. 이 방법으로 SSH 프로토콜을 사용할 수 있습니까? libssh를 내 프로그램에 통합하여 지원하는 방법은 무엇입니까?

+0

'scp'만 사용할 수 있습니까? 나는 정말로 "내가 필요할 때마다 항구를 여는 것"을 이해하지 못한다. – admdrew

+0

'ssh'의 포트 포워딩 기능을 살펴보십시오. – chepner

+0

@admdrew :'scp'는 파일을 복사하지만 데이터 전송을 원합니다. 원시 포트 전달과 같습니다. – configurator

답변

1

libssh를 사용하여이를 수행 할 수 있습니다. ssh 세션을 만들고 각 포트에 대해 포트 전달을위한 채널을 열 수 있습니다. 당신은 심지어에서 OpenSSH의 -M/ControlMaster 기능이 종류의 기능을 시도 할 수

http://api.libssh.org/stable/libssh_tutor_forwarding.html

+0

그래도 로컬 TCP 포트를 열지 않고도이 작업을 수행 할 수 있습니까? 마찬가지로, TCP를 통해 나 자신에게 연결하는 대신에 libssh 내부의 어떤 종류의 스트림을 여는가? – configurator

+1

또한, 링크 덕분에 libssh에 그러한 고품질의 문서가 있다는 것을 깨닫지 못했습니다. – configurator

+0

SSH는 TLS와 같은 애플리케이션의 전송 수단으로 사용될 수 있습니다. – asn

1

를 참조하십시오.

libssh 및 libssh2 모두이 기능을 지원합니다.

조금 큼 : SSH는 인증서를 사용하지 않으며 개인/공개 키를 사용합니다.