sftp_server 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ module SFTPServer
2
+ VERSION = "0.5.0"
3
+ end
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'bundler/setup'
5
+
6
+ require 'sftp_server'
7
+
8
+ dsa_key = File.expand_path('../keys/ssh_host_dsa_key', __FILE__)
9
+ fail "could not find dsa key file: #{dsa_key}" unless File.exist?(dsa_key)
10
+
11
+ rsa_key = File.expand_path('../keys/ssh_host_rsa_key', __FILE__)
12
+ fail "could not find rsa key file: #{rsa_key}" unless File.exist?(rsa_key)
13
+
14
+ server_pid = fork do
15
+ server = SFTPServer::Server.new(
16
+ dsa_key: dsa_key,
17
+ rsa_key: rsa_key,
18
+ user_name: 'test',
19
+ password: 'test',
20
+ port: '2299',
21
+ listen_address: '0.0.0.0'
22
+ )
23
+ server.open
24
+ end
25
+
26
+ puts 'Waiting for server to close'
27
+
28
+ Process.wait(server_pid)
29
+
30
+ puts 'Server closed'
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'bundler/setup'
5
+
6
+ require 'sftp_server'
7
+
8
+ dsa_key = File.expand_path('../keys/ssh_host_dsa_key', __FILE__)
9
+ fail "could not find dsa key file: #{dsa_key}" unless File.exist?(dsa_key)
10
+
11
+ rsa_key = File.expand_path('../keys/ssh_host_rsa_key', __FILE__)
12
+ fail "could not find rsa key file: #{rsa_key}" unless File.exist?(rsa_key)
13
+
14
+ server = SFTPServer::Server.new(
15
+ dsa_key: dsa_key,
16
+ rsa_key: rsa_key,
17
+ user_name: 'test',
18
+ password: 'test',
19
+ port: '2299',
20
+ listen_address: '0.0.0.0'
21
+ )
22
+ server.open
@@ -0,0 +1,12 @@
1
+ -----BEGIN DSA PRIVATE KEY-----
2
+ MIIBvAIBAAKBgQDUnWaAEUbM+bWDaTN5Uy8vP5GHlypG9s8cazJBMUxZ93scQWUM
3
+ 3rvcYIL7qLlaUBgX99pvpP2v0R+a6vspk0u2AIRvh+u+CLkNwzDuX9dZsc0U3zTS
4
+ dkubnRUxzbRME2zQ6/8hWlmjL+B5wQEyxDwHJNj12huugZN4uvnfX0SVHwIVAPAX
5
+ qlM6kufiCFPurQCnmZYPJooNAoGBAK3NmzU0uQ9Wq18U6DBE3snufvdS23L414V6
6
+ LYnW08EbImk0Aw3GtMSmsYAvK9ZrULpT6zBT708RPBrpbXV+a/vnH3NC8g0kWf5B
7
+ 7FqvUg+BtKTqZueXASiyI8Rgy1sRuyM3dQyQrw9Sk87RpeFZ/hYirO/RlGg543ga
8
+ rZkuMQyCAoGBAIhuiivxtt2co1SD6DIy5KwzogSq3na5R8h9tmswcwfXCFqwAYPs
9
+ Z095lfv6kl3m5PANnki5egeZIcUWeMNMm2FnqXbQ8RhPsX+RnGYLJZg147Sg4ljJ
10
+ UrGcooxXY8wim7mQBOKkRcBarAzLdQbPZqIyufQQaRf4xRSjmGTU/40vAhRx8jx2
11
+ ZnxlEEzjY0z4ZKsj7VvQeA==
12
+ -----END DSA PRIVATE KEY-----
@@ -0,0 +1 @@
1
+ ssh-dss AAAAB3NzaC1kc3MAAACBANSdZoARRsz5tYNpM3lTLy8/kYeXKkb2zxxrMkExTFn3exxBZQzeu9xggvuouVpQGBf32m+k/a/RH5rq+ymTS7YAhG+H674IuQ3DMO5f11mxzRTfNNJ2S5udFTHNtEwTbNDr/yFaWaMv4HnBATLEPAck2PXaG66Bk3i6+d9fRJUfAAAAFQDwF6pTOpLn4ghT7q0Ap5mWDyaKDQAAAIEArc2bNTS5D1arXxToMETeye5+91LbcvjXhXotidbTwRsiaTQDDca0xKaxgC8r1mtQulPrMFPvTxE8GultdX5r++cfc0LyDSRZ/kHsWq9SD4G0pOpm55cBKLIjxGDLWxG7Izd1DJCvD1KTztGl4Vn+FiKs79GUaDnjeBqtmS4xDIIAAACBAIhuiivxtt2co1SD6DIy5KwzogSq3na5R8h9tmswcwfXCFqwAYPsZ095lfv6kl3m5PANnki5egeZIcUWeMNMm2FnqXbQ8RhPsX+RnGYLJZg147Sg4ljJUrGcooxXY8wim7mQBOKkRcBarAzLdQbPZqIyufQQaRf4xRSjmGTU/40v mscottford@blaster.local
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEogIBAAKCAQEAseQ1yBfMhrP33iV8XdU4IFM69CPlJXvfksasWtGFcsElSnKH
3
+ m5m+4+3i0KtVdvl+v2jCZrl2gDprd5mqVhdFJBOxj7yC2nHhcpd95gsctLOGqy08
4
+ lJUVdRLvJwmqsTgQe2BmiyMgW2PqR0+A23Ze3AFZOpvZ5YFGNoS9xmez/BKa8ryH
5
+ ZtFIGtS3yQIzfvFnUmgx5rioaUiesz2MQPuNRnSq71k9st+iE8MC3sNfpJzswnP3
6
+ 7o28T1N0gynWgBozQGrf/rSnWdvjrYBNBXZ+G62qA4VsKvQFFaPiWhY315OfJxjq
7
+ pmzZvmPzKA6yssuQQUWpiRNTzWdhH6cIKFtlswIDAQABAoIBACh4oPu63l8vBo9V
8
+ u+ulHLXN+bWdjP5wJjdAV+n5jQDEjHVZhRyTZ+h3MIkE0dbVgE6PyNqSCzG1GMoG
9
+ /cfEV4iTqmvnGWYVTpNBf/UcRhWeWl8LVaMAH/eYrSwWeO0Esks/bVTuUug33Q8I
10
+ OWq0jXREIkbBOluKg6zXmk1PPpV0TIe30ahQmRu2EjKsPZ6OGOjq3kIBkybNWi6I
11
+ Ucs5hhLeMP/qbPTIUCQBE7hm3qH58pMjwIt0ToU1WOfa8DrsU4q9K/KnkoeIED3d
12
+ j3MdE8YRCX1osTbbARkHumTUzU4V9tX7/Vry7zcSlGMVyNAC06Svwg1Sn6Nb6Nsj
13
+ Y+Am5FECgYEA7MqMReF2L7c6t/4dElMqV4PSUUxuCtBOVkRQnJcj6csIDV6Gl9xf
14
+ dd/BlVxWZBTXMm5Br9n44kGdQXfBaI3ThU5Gl85sdE42Yv7QLhsdHWvZ7YhjeZky
15
+ NP/cW/aqpWknx86uMGXNt6QZnATQlhpyqxn9/vvDfZ7ouiZhuhVnQMUCgYEAwFJ9
16
+ FXYSB+9pRe9j58+DN2ICGElA4LCykMEFuT5NmzvkUyaEnSEZLEz71c6dWVy77oGN
17
+ mGnvO8HkhXA7Imbzo46dLdpxHJGPUsWYgc0eBiYLKuijQkdfzx97tqjv2Ev1Atqv
18
+ sT1JJQV7+FUZtra1nguCehShuDQiWCWZP1DjhBcCgYBOJcbHpVI5CzKw2IfFrXbS
19
+ 7SlzNVM39Gl2JROpqmPq29vrdZ/b7JoAr/kWjyPf4dTnyuWY4Mo3+cmpepl1JSGC
20
+ 5EN+BF1cwRdH8qrIHKCuPhLtRs71qa6dOTgDjdPhxWOgmMB6Lo8HJXxiNmCUuWPQ
21
+ vkJKbdKl2dUa4mHsZPXvtQKBgC+K9ML+ahyuEX8pW7Ate0mQn+XzDee9ppbkMI8H
22
+ mNW8K4hmqDfTu85YxZSoO/ugUhD209MOtQY3u09FXEj33FjdY3u3WWjvjteuYzIL
23
+ S9XHR9F2qw0yabvhE4snHguBU3M+LlqJRPCy919/Yhjp9+G3BK07NnM76BWUTdr6
24
+ GxRHAoGAAVxsLT3iLet7i1Ye/5dzqH/obRklRRApZKSWEGsxB9T3Qi69RAfxxEbn
25
+ N3HYkL1RCbkY4vRGq7l8voHpZW6mlNmXT1M/56PD/1F0LyGjcU/QwvMRjjMbEviT
26
+ uqjNrNT5hfC7SOdkwrl4kV//2B82I/nybyhbFCEayoBpPLPAl+0=
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1 @@
1
+ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCx5DXIF8yGs/feJXxd1TggUzr0I+Ule9+Sxqxa0YVywSVKcoebmb7j7eLQq1V2+X6/aMJmuXaAOmt3mapWF0UkE7GPvILaceFyl33mCxy0s4arLTyUlRV1Eu8nCaqxOBB7YGaLIyBbY+pHT4Dbdl7cAVk6m9nlgUY2hL3GZ7P8EpryvIdm0Uga1LfJAjN+8WdSaDHmuKhpSJ6zPYxA+41GdKrvWT2y36ITwwLew1+knOzCc/fujbxPU3SDKdaAGjNAat/+tKdZ2+OtgE0Fdn4braoDhWwq9AUVo+JaFjfXk58nGOqmbNm+Y/MoDrKyy5BBRamJE1PNZ2EfpwgoW2Wz mscottford@blaster.local
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'sftp_server/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "sftp_server"
8
+ spec.version = SFTPServer::VERSION
9
+ spec.authors = ["M. Scott Ford"]
10
+ spec.email = ["scott@corgibytes.com"]
11
+ spec.summary = %q{A simple SFTP server for testing clients}
12
+ spec.description = %q{Uses libssh via FFI to create an SFTP server. Useful for testing interactions with a remote SFTP server.}
13
+ spec.homepage = "https://github.com/corgibytes/sftp_server"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.7"
22
+ spec.add_development_dependency "rake", "~> 10.0"
23
+
24
+ spec.add_dependency 'ffi', '~> 1.9'
25
+ end
metadata ADDED
@@ -0,0 +1,105 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sftp_server
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.0
5
+ platform: ruby
6
+ authors:
7
+ - M. Scott Ford
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.7'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: ffi
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.9'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.9'
55
+ description: Uses libssh via FFI to create an SFTP server. Useful for testing interactions
56
+ with a remote SFTP server.
57
+ email:
58
+ - scott@corgibytes.com
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - ".gitignore"
64
+ - ".ruby-version"
65
+ - Gemfile
66
+ - LICENSE.txt
67
+ - README.md
68
+ - Rakefile
69
+ - lib/sftp_server.rb
70
+ - lib/sftp_server/c/api.rb
71
+ - lib/sftp_server/server.rb
72
+ - lib/sftp_server/ssh/api.rb
73
+ - lib/sftp_server/version.rb
74
+ - sample/background.rb
75
+ - sample/basic.rb
76
+ - sample/keys/ssh_host_dsa_key
77
+ - sample/keys/ssh_host_dsa_key.pub
78
+ - sample/keys/ssh_host_rsa_key
79
+ - sample/keys/ssh_host_rsa_key.pub
80
+ - sftp_server.gemspec
81
+ homepage: https://github.com/corgibytes/sftp_server
82
+ licenses:
83
+ - MIT
84
+ metadata: {}
85
+ post_install_message:
86
+ rdoc_options: []
87
+ require_paths:
88
+ - lib
89
+ required_ruby_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ required_rubygems_version: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ requirements: []
100
+ rubyforge_project:
101
+ rubygems_version: 2.2.2
102
+ signing_key:
103
+ specification_version: 4
104
+ summary: A simple SFTP server for testing clients
105
+ test_files: []