2012-05-11 4 views
1

SCP 명령을 통해 로컬 컴퓨터에서 원격 서버로 파일을 복사하려고합니다. Cygwin을 통해 파일을 복사 할 수있었습니다. 이제 Qt를 통해 이것을 달성하고 싶습니다. 'SCP'명령은 어떻게 호출합니까? QProcess를 사용하면 암호 프롬프트에 대해 어떻게 알 수 있습니까? 내가 아는 한, 당신은 당신이 SCP를 호출하는 bash는 스크립트를 작성하려고 할 경우에도 (명령을 호출하려고 어느 방법으로 암호를 입력하라는 메시지가 SCP와 같은 문제에 충돌합니다 FARA으로Qt에서 SCP 명령을 호출하는 방법

+0

암호를 (QByteArray로)'QProcess'의 표준 입력에'쓰기 (write')하면 작동하지 않습니까? – dschulz

+0

'QProcess'를 사용하여'pg_dump' 명령 (PostgreSQL 백업 유틸리티)을 호출하고 암호를 표준 입력에'QByteArray'로 쓰려고했습니다. 'write()'를 알기 위해서 프로세스의 표준 에러 (readyReadStandardError() 시그널)를 모니터링하고 있습니다. 문자열'startsWith()'' "Password :"'이면 암호를'write()'합니다. 그것은 잘 작동합니다. – dschulz

+0

이제'scp '로 시도 할 것입니다. – dschulz

답변

0

에 대한 예) 나는 알고 있어요 가능한 해결의 포함 : 당신이 암호를 입력하라는 메시지가 필요하지 않도록

  • 는 공개/개인 키를 생성하고 배포 할 수 있습니다. 주제에 흥미로운 논문은 here
  • 는 공개 키를 사용하는 사용자를 필요 expect 스크립트를 생성하고 QProcess
0

으로 호출하고 문제가 해결 : https://hkn.eecs.berkeley.edu/~dhsu/ssh_public_key_howto.html

SCP, SSH, SFTP를, 의도적으로 사용자가 아닌 다른 사람이 직접 암호를 알아내는 것을 어렵게 만듭니다. 특히 expect과 같은 것은 작동하지 않습니다. 그리고 만약 그렇게했다면 그들은 안전하지 않을 것입니다.

관련 문제