[sword-devel] SFTP Support

Greg Hellings greg.hellings at gmail.com
Tue Dec 4 09:43:27 MST 2012


Peter,

I see two problems:

1) You need to specify Username and Password in your InstallMgr.conf
file. This is clearly NOT ideal, as the values are stored in plain
text. Alternatively, you can have key-based authentication and just
include the username - but you have to have your keys stored in
~/.ssh/id_dsa and ~/.ssh/id_dsa.pub. These values can be changed, but
doing so was beyond the scope of my initial plan as it would require
additional fields in InstallMgr.conf. For me, that is a bit of an
issue because I use RSA keys, but the problem can be resolved by just
symlinking between id_rsa and id_dsa and their .pub files.

If this becomes a viable option, we might want to consider a
modification to InstallMgr.conf which permits public-key
authentication methods to be specified.

2) Your "CURLFTPTransport: TEXT: Protocol sftp not supported or
disabled in libcurl" debugging output line indicates that, even if you
provide your username/password combination then it wouldn't work as
your build of libcurl was not linked against libssl/libssh. Either you
built it yourself and didn't have the development files for those
libraries installed or your distro does not include those as
build-time dependencies and you should file a packaging bug with your
distribution. In Fedora, the command "ldd /usr/lib64/libcurl.so"
reveals links to libssl.so.10, libssl3.so and libssh2.so.1. I'm
guessing the equivalent ldd for you would show at least libssh2
missing from your libcurl build.

See if getting a properly built libcurl resolves (2) and then we can
see if there are debugging output complaints about (1) that we can
resolve in a secure manner for you without further changes to SWORD -
although I presume we will need to implement such changes if SFTP is
to be supported properly.

--Greg

On Tue, Dec 4, 2012 at 4:13 AM, Peter von Kaehne <refdoc at gmx.net> wrote:
> On 04/12/12 05:28, David "Judah's Shadow" Blue wrote:
>
> Greg Hellings <greg.hellings at gmail.com> wrote:
>>
>> The attached patch will introduce support for SFTPSource transports in
>> the SWORD engine, allowing a user to access remote repositories over
>> SFTP (which is enabled by default when a user enables SSH).
>
>
> This is a brilliant idea, Greg, particularly for having access to private
> modules on the road.
>
> 1) It applies and compiles cleanly
> 2) installmgr continues to function with the standard protocolls.
>
> Unfortunately when trying to use it I get the (username edited) debug
> message attached below from installmgr. What I had done is I added a line to
> my InstallMgr.conf:
>
> SFTPSource=Home|backup|/home/<username>/.sword|||
>
> "backup" is resolved in my /etc/hosts file to my NAS which is accessible via
> ssh. /home/<username>/.sword is the path from /
>
> Am I doing something wrong or is there something malfunctioning? I tried
> also <username>@backup as servername
> ---------------------------------------------------------------------------
>
> netCopy: backup, mods.d.tar.gz,
> /home/peter//.sword/InstallMgr/backup/mods.d.tar.gz, f,
> ***** using CURLOPT_FTP_USE_EPRT
>
> ***** About to perform curl easy action.
>
> ***** destPath: /home/<username>//.sword/InstallMgr/backup/mods.d.tar.gz
>
> ***** sourceURL: sftp://backup/home/<username>/.sword/mods.d.tar.gz
>
> CURLFTPTransport: TEXT: Protocol sftp not supported or disabled in libcurl
>
> CURLFTPTransport: TEXT: Unsupported protocol
>
> ***** Finished performing curl easy action.
>
> netCopy: failed to get file
> sftp://backup/home/<username>/.sword/mods.d.tar.gz
> netCopy: backup, mods.d, /home/<username>//.sword/InstallMgr/backup/mods.d,
> t, .conf
> NetTransport: getting dir sftp://backup/home/<username>/.sword/mods.d/
>
> ***** using CURLOPT_FTP_USE_EPRT
>
> ***** About to perform curl easy action.
>
> ***** destPath:
>
> ***** sourceURL: sftp://backup/home/<username>/.sword/mods.d/
>
> CURLFTPTransport: TEXT: Protocol sftp not supported or disabled in libcurl
>
> CURLFTPTransport: TEXT: Unsupported protocol
>
> ***** Finished performing curl easy action.
>
> FTPURLGetDir: failed to get dir sftp://backup/home/<username>/.sword/mods.d/
>
> NetTransport: failed to read dir
> sftp://backup/home/<username>/.sword/mods.d/
>
>
> Error Refreshing Remote Source
>
> -------------------------
>
>
>
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page



More information about the sword-devel mailing list