SFTP를 통해 한 서버에서 다른 서버로 파일을 전송할 때 ssh2_scp_send를 사용하고 있습니다. 원격 서버에 대한 액세스를 확인하고 GUI 응용 프로그램 (FileZilla)을 사용하여 파일을 전송할 수는 있지만 ssh2_scp_send 호출이 실패했습니다.ssh2_scp_send : 아마도 원격 디렉터리가 알려지지 않았기 때문에 실패합니다.
원격 서버의 전체 경로를 알지 못하기 때문에 (또는 쉽게 찾을 수있는 액세스 권한이 없기 때문일 수 있습니다.) 나는 방금 파일 이름을 전달하면 사용자가 액세스 할 수있는 상위 디렉토리가 기본값이라고 가정했습니다.
$conn = ssh2_connect('domain', 22);
$auth = ssh2_auth_password($conn, 'user', 'password');
if ($auth) {
//send the file
$send = ssh2_scp_send($conn, $file, $data['xml_filename']);
}
나는 디렉토리를 검색하고 위치를 파악하려고
ssh2_exec($ssh_conn, 'ls -la');
를 사용하여 시도,하지만 (내가 SSH를 허용하지 않는이 액세스 자격 증명이 SFTP에서 떨어져 명령) 실패합니다.
내 질문 :
- 전체 원격 경로를 찾을 수있는 쉬운 방법이?
- 거기에 기본 대상을 사용하도록 ssh2_scp_send에 지시하는 방법이 있습니까?
- 다른 어떤 문제를 해결해야합니까? 나는 단지 위의 것이 문제라는 것을 짐작할뿐입니다. 그것은 완전히 다른 것일 수 있습니다.
네, 그게 정확히 제가 발견 한 것입니다. ssh2_sftp를 초기화 한 다음 file_get_contents/file_put_contents를 사용하여 전송할 수있었습니다. – lcdservices