Hi Michal, Thanks a lot! It is a very nice working example, and it is good for newbie as well.
Regards, Osborn From: Michal Mach <[email protected]<mailto:[email protected]>> Reply-To: Twisted general discussion <[email protected]<mailto:[email protected]>> Date: Tue, 23 Aug 2011 00:31:00 +0200 To: Twisted general discussion <[email protected]<mailto:[email protected]>> Subject: Re: [Twisted-Python] SFTP Server sample Not sure what you mean, but here is a basic example: from zope.interface import implements from twisted.application import service, internet from twisted.conch.ssh.keys import Key from twisted.conch.ssh.factory import SSHFactory from twisted.conch.unix import UnixSSHRealm from twisted.cred.checkers import ICredentialsChecker from twisted.cred.credentials import IUsernamePassword from twisted.cred.portal import Portal def get_key(path): return Key.fromString(data=open(path).read()) class DummyChecker(object): credentialInterfaces = (IUsernamePassword,) implements(ICredentialsChecker) def requestAvatarId(self, credentials): return credentials.username def makeService(): public_key = get_key('id_rsa.pub') private_key = get_key('id_rsa') factory = SSHFactory() factory.privateKeys = {'ssh-rsa': private_key} factory.publicKeys = {'ssh-rsa': public_key} factory.portal = Portal(UnixSSHRealm()) factory.portal.registerChecker(DummyChecker()) return internet.TCPServer(2200, factory) application = service.Application("sftp server") sftp_server = makeService() sftp_server.setServiceParent(application) Put this content into a file like sftp.tac The keys can be generated by ckeygen utility which is part of Twisted (e.g. ckeygen -b 2048 -t rsa -f id_rsa) and run with twistd -ny sftp.tac If you want more background on Twisted conch i suggest the "Twisted Conch in 60 Seconds" series by Jean-Paul Calderone on his blog http://as.ynchrono.us/ Michal Mach On Mon, Aug 22, 2011 at 10:31 PM, Osborn Chan <[email protected]<mailto:[email protected]>> wrote: Yes. It is SFTP, and I found that filetransfer.FileTransferServer is a subsystem under UnixConchUser. self.subsystemLookup.update({"sftp": filetransfer.FileTransferServer}) However, I was able to start a ssh shell by using SSHFactory and UnixSSHReam, but I was not able to start SFTP as sub system. Do I need to do anything explicitly to start sftp subsystem? Thanks, -Osborn newbie in Python and Twisted. On 8/22/11 12:50 PM, "Jasper St. Pierre" <[email protected]<mailto:[email protected]>> wrote: >What about twisted.conch.ssh.filetransfer? Is that not SFTP? > >On Mon, Aug 22, 2011 at 3:36 PM, Drew Smathers ><[email protected]<mailto:[email protected]>> >wrote: >> On Fri, Aug 19, 2011 at 2:43 PM, Osborn Chan >> <[email protected]<mailto:[email protected]>> wrote: >>> Hi, >>> >>> I am a newbie in twisted and python. >>> I would like to create a python SFTP server with twisted, but I cannot >>>find any sample. >>> >>> Can someone give me some advise? >>> >> >> I don't believe there are any examples of building an SFTP server >> aimed at newcomers to twisted and python but there are existing >> implementations in the wild--which might honestly be difficult to >> digest if you don't know python well enough. I think zope at one time >> has SFTP server based on twisted (which I can't seem to summon with >> google) and there's also SFTP server implementation in tahoe-lafs >> >>(https://github.com/warner/tahoe-lafs/blob/master/src/allmydata/frontends >>/sftpd.py). >> >> -Drew >> >> _______________________________________________ >> Twisted-Python mailing list >> [email protected]<mailto:[email protected]> >> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python >> > > > >-- > Jasper > >_______________________________________________ >Twisted-Python mailing list >[email protected]<mailto:[email protected]> >http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python _______________________________________________ Twisted-Python mailing list [email protected]<mailto:[email protected]> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python _______________________________________________ Twisted-Python mailing list [email protected]<mailto:[email protected]> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python _______________________________________________ Twisted-Python mailing list [email protected] http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
