You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Mario Ivankovits <ma...@ops.co.at> on 2005/04/23 07:22:26 UTC

Re: [VFS] Could not connect to SFTP server

Hi manco!
>Caused by: com.jcraft.jsch.JSchException: UnknownHostKey
> at com.jcraft.jsch.Session.checkHost(Unknown Source)
> at com.jcraft.jsch.Session.connect(Unknown Source)
> at com.jcraft.jsch.Session.connect(Unknown Source)
> at org.apache.commons.vfs.provider.sftp.SftpClientFactory.createConnection(SftpClientFactory.java:138)
> ... 7 more
>  
The host is new for jsch or your ssh environment (known_hosts), so you 
have to trust it or pass the path to your known_hosts file to jasch

1) known_hosts
SftpFileSystemConfigBuilder.getInstance().setKnownHosts(opts, new 
File("path/to/known_hosts"));

2) or turn off the strictHostKeyChecking

        FileSystemOptions opts = new FileSystemOptions();
        
SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(opts, 
"no");
        FileObject fo = VFS.getManager().resolveFile("sftp://xxxx", opts);

3) Or create a class which implememnts the
com.jcraft.jsch.UserInfo interface and configure it for your connection

SftpFileSystemConfigBuilder.getInstance().setUserInfo(opts, yourUserInfo);

That way you could implement a user-dialog where you ask the user to 
trust the host.


I hope one of the ways solves your problem.

---
Mario


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Re: [VFS] Could not connect to SFTP server

Posted by Mario Ivankovits <ma...@ops.co.at>.
Hi!
> 
>Thanks "FileObject file = mgr.resolveFile(args[i], opts); " this did the trick.
>  
Great!
>1. Does VFS work for SMB file transfers?
>  
Yes, just use smb:// as scheme in your url. The required library is 
jcifs http://jcifs.samba.org/
>2. What version should I be using, are there some stable points, builds?
>  
Sorry - no, as a sandbox project there are no builds. Only nightlies for 
now.

>3. If I do a build, what do I need to do to configure ant and the properties files so that the
>    junit tests are actually run?
>  
Great question!
I finally have to start to document this process, you need a couple of 
servers to install and configure.
Stay "on list" I will post if its online.


Ciao,
Mario


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Re: [VFS] Could not connect to SFTP server

Posted by manco <me...@yahoo.com>.
Mario,
 
Thanks "FileObject file = mgr.resolveFile(args[i], opts); " this did the trick.
 
 
I have a couple more questions:
1. Does VFS work for SMB file transfers?
2. What version should I be using, are there some stable points, builds?
3. If I do a build, what do I need to do to configure ant and the properties files so that the
    junit tests are actually run? In my previous msg I indicated that I got a successful build
    including the test classes, but the actual test target failed to do anything other than create
    the directory. It may be something I need to configure in / for the project.properties file.
 
I will check into the known_hosts issue before I fade back into the night.
A. I am currently running on a Windows XP box talking to an in-house sftp server running
    on a linux box. On windows I am running with SSH Secure Shell
B. In production I will be running on a linux box and communicating to a potentially off site 
    server, not sure if it will be linux or Windows...

 
Thanks for all your help,
Manco
 


 

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Re: [VFS] Could not connect to SFTP server

Posted by Mario Ivankovits <ma...@ops.co.at>.
manco wrote:
>1. It appears the providers.xml file in the jar  has FTPFileX.
> it doesnt seem like this is correct, I un-jarred, changed the value to FTPFile and re-jarred,
> the ftp connection now works again.
>  
Thanks - Great Hit!
Strange that this wasnt uncovered before.
>2. I dont know much about the known_hosts, but I found the following reference, which I pass
>along for the sake of others:
>  
Normally its not needet to know much about the format of the known_hosts 
file. If you use the command-line utility "ssh" to connect to a new host 
the first time it will ask you if you trust this host-key. If you answer 
"yes" it will be added to the known_hosts automatically. Though this 
could be configured through /etc/sshd/ssh_config where your 
administrator can force you to add the host-key manually.
>3. I put in the following code :
>   {
>...
>              FileSystemOptions opts = new FileSystemOptions();
>              SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(
>                 opts, "no");
>...
>                FileObject file = mgr.resolveFile(args[i]);   << still throws error
>
>       ...}
>  
You need to pass the "opts" to the resolveFile method:
FileObject file = mgr.resolveFile(args[i], opts);


Ciao,
Mario


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Re: [VFS] Could not connect to SFTP server

Posted by manco <me...@yahoo.com>.
Update:
 
1. It appears the providers.xml file in the jar  has FTPFileX.

<provider class-name="org.apache.commons.vfs.provider.ftp.FtpFileProvider">
<scheme name="ftp"/>
<if-available class-name="org.apache.commons.net.ftp.FTPFileX"/>
</provider>

 it doesnt seem like this is correct, I un-jarred, changed the value to FTPFile and re-jarred,
 the ftp connection now works again.

2. I dont know much about the known_hosts, but I found the following reference, which I pass
along for the sake of others:

SSH_KNOWN_HOSTS FILE FORMAT
The /etc/ssh/ssh_known_hosts and $HOME/.ssh/known_hosts ...http://linux.about.com/od/commands/l/blcmdl8_sshd.htm
 
3. I put in the following code :
   {
...
              FileSystemOptions opts = new FileSystemOptions();
              SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(
                 opts, "no");
...
                FileObject file = mgr.resolveFile(args[i]);   << still throws error

       ...}
org.apache.commons.vfs.FileSystemException: Could not connect to SFTP server at "sftp://pipe:emeter@linuxserver1/".
 at org.apache.commons.vfs.provider.sftp.SftpFileProvider.doCreateFileSystem(SftpFileProvider.java:87)
 at org.apache.commons.vfs.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:76)
 at org.apache.commons.vfs.provider.AbstractOriginatingFileProvider.findFile(AbstractOriginatingFileProvider.java:61)
 at org.apache.commons.vfs.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:513)
 at org.apache.commons.vfs.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:486)
 at org.apache.commons.vfs.impl.DefaultFileSystemManager.resolveFile(DefaultFileSystemManager.java:456)
 at com.eMeter.vfstest.ShowProperties.main(ShowProperties.java:88)
Caused by: org.apache.commons.vfs.FileSystemException: Could not connect to SFTP server at "linuxserver1".
 at org.apache.commons.vfs.provider.sftp.SftpClientFactory.createConnection(SftpClientFactory.java:166)
 at org.apache.commons.vfs.provider.sftp.SftpFileProvider.doCreateFileSystem(SftpFileProvider.java:79)
 ... 6 more
Caused by: com.jcraft.jsch.JSchException: UnknownHostKey
 at com.jcraft.jsch.Session.checkHost(Unknown Source)
 at com.jcraft.jsch.Session.connect(Unknown Source)
 at com.jcraft.jsch.Session.connect(Unknown Source)
 at org.apache.commons.vfs.provider.sftp.SftpClientFactory.createConnection(SftpClientFactory.java:162)
 ... 7 more

 
Q: Could this be a problem with the SFTP rejecting my connection? 
 
Thanks,
Manco

Mario Ivankovits wrote:
Hi manco!
>Caused by: com.jcraft.jsch.JSchException: UnknownHostKey
> at com.jcraft.jsch.Session.checkHost(Unknown Source)
> at com.jcraft.jsch.Session.connect(Unknown Source)
> at com.jcraft.jsch.Session.connect(Unknown Source)
> at org.apache.commons.vfs.provider.sftp.SftpClientFactory.createConnection(SftpClientFactory.java:138)
> ... 7 more
> 
The host is new for jsch or your ssh environment (known_hosts), so you 
have to trust it or pass the path to your known_hosts file to jasch

1) known_hosts
SftpFileSystemConfigBuilder.getInstance().setKnownHosts(opts, new 
File("path/to/known_hosts"));

2) or turn off the strictHostKeyChecking

FileSystemOptions opts = new FileSystemOptions();

SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(opts, 
"no");
FileObject fo = VFS.getManager().resolveFile("sftp://xxxx", opts);

3) Or create a class which implememnts the
com.jcraft.jsch.UserInfo interface and configure it for your connection

SftpFileSystemConfigBuilder.getInstance().setUserInfo(opts, yourUserInfo);

That way you could implement a user-dialog where you ask the user to 
trust the host.


I hope one of the ways solves your problem.

---
Mario


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

		
---------------------------------
Do you Yahoo!?
 Yahoo! Small Business - Try our new resources site! 

Re: [VFS] Could not connect to SFTP server

Posted by manco <me...@yahoo.com>.
Mario,
 
Thanks for the clues, unfortunately I still cant get it to work, in fact I have taken a step back.
 
1. Is there a format for the "known_hosts" file? I tried using the format from linux/etc/hosts,
    still got the same problem.
 
2. I also tried suggestion #2, also no luck, same problem 
 
3. #3 wouldntt be the way I would be using it. I have an app that generates a bunch of files
    either another app or a thread will be running to pick up the generated files and sftp them
    off to the target, no chance for user interaction.
 
So, I tried doing a full build of vfs using the ant build.xml file. The compile build went find,
all classes and a jar were/was built, including the test classes. I thouhgt maybe I could run
the test and use the exact jars & versions as in the build. I attempted to run the 
"internal-tests" target but all it did was make the testreportdir and exit.  I see that there is 
a project.properties file, but I am not sure what I need to set to use it. 
 
So, I went back to my original test and now I can nolonger use FTP (not sftp),  for some reason, which I can not figure out I am now getting:
 
94 [main] DEBUG org.apache.commons.vfs.impl.StandardFileSystemManager  - Skipping provider "org.apache.commons.vfs.provider.ftp.FtpFileProvider" because required class "org.apache.commons.net.ftp.FTPFileX" is not available.
 
I am using JBuilder and I have commons-net in the required libs, commons-net has a FTPFile.class, I dont see anything called FTPFileX.
 
thanks,
Manco


Mario Ivankovits <ma...@ops.co.at> wrote:
Hi manco!
>Caused by: com.jcraft.jsch.JSchException: UnknownHostKey
> at com.jcraft.jsch.Session.checkHost(Unknown Source)
> at com.jcraft.jsch.Session.connect(Unknown Source)
> at com.jcraft.jsch.Session.connect(Unknown Source)
> at org.apache.commons.vfs.provider.sftp.SftpClientFactory.createConnection(SftpClientFactory.java:138)
> ... 7 more
> 
The host is new for jsch or your ssh environment (known_hosts), so you 
have to trust it or pass the path to your known_hosts file to jasch

1) known_hosts
SftpFileSystemConfigBuilder.getInstance().setKnownHosts(opts, new 
File("path/to/known_hosts"));

2) or turn off the strictHostKeyChecking

FileSystemOptions opts = new FileSystemOptions();

SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(opts, 
"no");
FileObject fo = VFS.getManager().resolveFile("sftp://xxxx", opts);

3) Or create a class which implememnts the
com.jcraft.jsch.UserInfo interface and configure it for your connection

SftpFileSystemConfigBuilder.getInstance().setUserInfo(opts, yourUserInfo);

That way you could implement a user-dialog where you ask the user to 
trust the host.


I hope one of the ways solves your problem.

---
Mario


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com