net-ssh 4.0.0 → 4.0.1.rc1
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +3 -4
- data.tar.gz.sig +0 -0
- data/.travis.yml +7 -7
- data/CHANGES.txt +7 -0
- data/Gemfile +4 -0
- data/Gemfile.norbnacl.lock +14 -14
- data/appveyor.yml +3 -2
- data/lib/net/ssh/authentication/ed25519.rb +2 -3
- data/lib/net/ssh/authentication/ed25519_loader.rb +13 -3
- data/lib/net/ssh/authentication/pageant.rb +4 -4
- data/lib/net/ssh/config.rb +27 -9
- data/lib/net/ssh/version.rb +2 -2
- data/net-ssh.gemspec +3 -3
- metadata +16 -10
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2a85d8ffe356b4c518f3b9f03e5db8e988d305c8
|
|
4
|
+
data.tar.gz: 814f1bd93b849e89d6210d84ec53a4eafa617a91
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 59055d104360f2ddb71cb09747dc4a0cc3df52714d97b966cce35e13cc731d913114f873c6ccc3a937c2ecb2bce2ed84850bcbfe5a9e5f554ada3f725eb47c15
|
|
7
|
+
data.tar.gz: 0f7d6af33dfe71f9d34a06d2a7eddbd3350cf135bb9da9e13e494c1c1284db46a4f226bbfbed5d8c608ab4eb963bd4dfeb3099a167a5b58d8b7dae3cdd519521
|
checksums.yaml.gz.sig
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
�8��vi�Ww�T�|�m�o1˧?��a&4M
|
|
1
|
+
�2��Ik�z�Q6�:�6tvx��e�*^�� �18�x��K犐��9�#�Uv�\`'̫=����a�W;8�Us�9>lb��W��_V�����~�8)]Pcif�\�(�͑0b��<�:c~?,���P�=�%������w���n��Y���
|
|
2
|
+
>����䯯郂�g�F+��ƽ���������p�N��
|
|
3
|
+
����g�j
|
data.tar.gz.sig
CHANGED
|
Binary file
|
data/.travis.yml
CHANGED
|
@@ -32,15 +32,15 @@ matrix:
|
|
|
32
32
|
install:
|
|
33
33
|
- export JRUBY_OPTS='--client -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -Xcext.enabled=false -J-Xss2m -Xcompile.invokedynamic=false'
|
|
34
34
|
- sudo pip install ansible
|
|
35
|
-
- gem install bundler -v "= 1.
|
|
36
|
-
- bundle _1.
|
|
37
|
-
- BUNDLE_GEMFILE=./Gemfile.norbnacl bundle _1.
|
|
35
|
+
- gem install bundler -v "= 1.13.7"
|
|
36
|
+
- bundle _1.13.7_ install
|
|
37
|
+
- BUNDLE_GEMFILE=./Gemfile.norbnacl bundle _1.13.7_ install
|
|
38
38
|
- sudo ansible-galaxy install rvm_io.ruby
|
|
39
39
|
- sudo chown -R travis:travis /home/travis/.ansible
|
|
40
40
|
- ansible-playbook ./test/integration/playbook.yml -i "localhost," --become -c local -e 'no_rvm=true' -e 'myuser=travis' -e 'mygroup=travis' -e 'homedir=/home/travis'
|
|
41
41
|
|
|
42
42
|
script:
|
|
43
|
-
- bundle _1.
|
|
44
|
-
- BUNDLE_GEMFILE=./Gemfile.norbnacl bundle _1.
|
|
45
|
-
- bundle _1.
|
|
46
|
-
- bundle _1.
|
|
43
|
+
- bundle _1.13.7_ exec rake test
|
|
44
|
+
- BUNDLE_GEMFILE=./Gemfile.norbnacl bundle _1.13.7_ exec rake test
|
|
45
|
+
- bundle _1.13.7_ exec rake test_test
|
|
46
|
+
- bundle _1.13.7_ exec rubocop
|
data/CHANGES.txt
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
=== 4.0.1.rc1
|
|
2
|
+
|
|
3
|
+
* support of rbnacl 4.0 and better error message [#479]
|
|
4
|
+
* support include in config files [Kimura Masayuki, #475]
|
|
5
|
+
* fixed issue with ruby 2.2 or older on windows [#472]
|
|
6
|
+
|
|
7
|
+
=== 4.0.0
|
|
1
8
|
=== 4.0.0.rc3
|
|
2
9
|
|
|
3
10
|
* parse `+` character in config files [Christoph Lupprich, #470, #314]
|
data/Gemfile
CHANGED
|
@@ -7,6 +7,10 @@ if !Gem.win_platform? && RUBY_ENGINE == "mri"
|
|
|
7
7
|
gem 'byebug', group: [:development, :test]
|
|
8
8
|
end
|
|
9
9
|
|
|
10
|
+
if (Gem::Version.new(RUBY_VERSION) <=> Gem::Version.new("2.2.6")) < 0
|
|
11
|
+
gem 'rbnacl', '< 4.0'
|
|
12
|
+
end
|
|
13
|
+
|
|
10
14
|
if ENV["CI"]
|
|
11
15
|
gem 'codecov', require: false, group: :test
|
|
12
16
|
gem 'simplecov', require: false, group: :test
|
data/Gemfile.norbnacl.lock
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
net-ssh (4.0.0
|
|
4
|
+
net-ssh (4.0.0)
|
|
5
5
|
|
|
6
6
|
GEM
|
|
7
7
|
remote: https://rubygems.org/
|
|
8
8
|
specs:
|
|
9
|
-
ast (2.
|
|
9
|
+
ast (2.3.0)
|
|
10
10
|
metaclass (0.0.4)
|
|
11
|
-
minitest (5.
|
|
12
|
-
mocha (1.1
|
|
11
|
+
minitest (5.10.1)
|
|
12
|
+
mocha (1.2.1)
|
|
13
13
|
metaclass (~> 0.0.1)
|
|
14
|
-
parser (2.3.1
|
|
14
|
+
parser (2.3.3.1)
|
|
15
15
|
ast (~> 2.2)
|
|
16
16
|
powerpack (0.1.1)
|
|
17
17
|
rainbow (2.1.0)
|
|
18
|
-
rake (
|
|
19
|
-
rubocop (0.
|
|
20
|
-
parser (>= 2.3.
|
|
18
|
+
rake (12.0.0)
|
|
19
|
+
rubocop (0.46.0)
|
|
20
|
+
parser (>= 2.3.1.1, < 3.0)
|
|
21
21
|
powerpack (~> 0.1)
|
|
22
22
|
rainbow (>= 1.99.1, < 3.0)
|
|
23
23
|
ruby-progressbar (~> 1.7)
|
|
24
24
|
unicode-display_width (~> 1.0, >= 1.0.1)
|
|
25
|
-
ruby-progressbar (1.8.
|
|
26
|
-
unicode-display_width (1.
|
|
25
|
+
ruby-progressbar (1.8.1)
|
|
26
|
+
unicode-display_width (1.1.2)
|
|
27
27
|
|
|
28
28
|
PLATFORMS
|
|
29
29
|
ruby
|
|
@@ -31,11 +31,11 @@ PLATFORMS
|
|
|
31
31
|
|
|
32
32
|
DEPENDENCIES
|
|
33
33
|
bundler (~> 1.11)
|
|
34
|
-
minitest (~> 5.
|
|
35
|
-
mocha (>= 1.1
|
|
34
|
+
minitest (~> 5.10)
|
|
35
|
+
mocha (>= 1.2.1)
|
|
36
36
|
net-ssh!
|
|
37
|
-
rake (~>
|
|
38
|
-
rubocop (~> 0.
|
|
37
|
+
rake (~> 12.0)
|
|
38
|
+
rubocop (~> 0.46.0)
|
|
39
39
|
|
|
40
40
|
BUNDLED WITH
|
|
41
41
|
1.13.6
|
data/appveyor.yml
CHANGED
|
@@ -7,6 +7,7 @@ environment:
|
|
|
7
7
|
- ruby_version: "jruby-9.1.2.0"
|
|
8
8
|
- ruby_version: "23"
|
|
9
9
|
- ruby_version: "23-x64"
|
|
10
|
+
- ruby_version: "22-x64"
|
|
10
11
|
|
|
11
12
|
#init:
|
|
12
13
|
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|
|
@@ -21,14 +22,14 @@ platform:
|
|
|
21
22
|
install:
|
|
22
23
|
- SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
|
|
23
24
|
- if "%ruby_version%" == "jruby-9.1.2.0" ( cinst javaruntime -i )
|
|
24
|
-
- if "%ruby_version%" == "jruby-9.1.2.0" ( cinst jruby --version 9.1.2.0 -i )
|
|
25
|
+
- if "%ruby_version%" == "jruby-9.1.2.0" ( cinst jruby --version 9.1.2.0 -i --allow-empty-checksums )
|
|
25
26
|
- if "%ruby_version%" == "jruby-9.1.2.0" ( SET "PATH=C:\jruby-9.1.2.0\bin\;%PATH%" )
|
|
26
27
|
- ruby --version
|
|
27
28
|
- gem install bundler --no-document -v 1.13.5
|
|
28
29
|
- SET BUNDLE_GEMFILE=Gemfile.norbnacl
|
|
29
30
|
- bundle _1.13.5_ install --retry=3
|
|
30
31
|
- cinst freesshd
|
|
31
|
-
- cinst putty
|
|
32
|
+
- cinst putty --allow-empty-checksums
|
|
32
33
|
- ps: |
|
|
33
34
|
if ($env:Processor_Architecture -eq "x86")
|
|
34
35
|
{
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
gem 'rbnacl
|
|
2
|
-
gem '
|
|
3
|
-
gem 'bcrypt_pbkdf', '~> 1.0.0' unless RUBY_PLATFORM == "java"
|
|
1
|
+
gem 'rbnacl', '>= 3.2.0', '< 5.0'
|
|
2
|
+
gem 'bcrypt_pbkdf', '~> 1.0' unless RUBY_PLATFORM == "java"
|
|
4
3
|
|
|
5
4
|
require 'rbnacl/libsodium'
|
|
6
5
|
require 'rbnacl'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module Net; module SSH; module Authentication
|
|
2
2
|
|
|
3
3
|
# Loads ED25519 support which requires optinal dependecies like
|
|
4
|
-
# rbnacl
|
|
4
|
+
# rbnacl, bcrypt_pbkdf
|
|
5
5
|
module ED25519Loader
|
|
6
6
|
|
|
7
7
|
begin
|
|
@@ -14,8 +14,18 @@ rescue LoadError => e
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def self.raiseUnlessLoaded(message)
|
|
17
|
-
|
|
17
|
+
description = dependenciesRequiredForED25519 if ERROR.is_a?(Gem::LoadError)
|
|
18
|
+
description << "#{ERROR.class} : \"#{ERROR.message}\"\n" if ERROR
|
|
19
|
+
raise NotImplementedError, "#{message}\n#{description}" unless LOADED
|
|
18
20
|
end
|
|
19
21
|
|
|
22
|
+
def self.dependenciesRequiredForED25519
|
|
23
|
+
result = "net-ssh requires the following gems for ed25519 support:\n"
|
|
24
|
+
result << " * rbnacl (>= 3.2, < 5.0)\n"
|
|
25
|
+
result << " * rbnacl-libsodium, if your system doesn't have libsodium installed.\n"
|
|
26
|
+
result << " * bcrypt_pbkdf (>= 1.0, < 2.0)\n" unless RUBY_PLATFORM == "java"
|
|
27
|
+
result << "See https://github.com/net-ssh/net-ssh/issues/478 for more information\n"
|
|
20
28
|
end
|
|
21
|
-
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
end; end; end
|
|
@@ -98,8 +98,8 @@ module Net; module SSH; module Authentication
|
|
|
98
98
|
|
|
99
99
|
# args: hFile, (ignored), flProtect, dwMaximumSizeHigh,
|
|
100
100
|
# dwMaximumSizeLow, lpName
|
|
101
|
-
extern "HANDLE CreateFileMapping#{SUFFIX}(HANDLE, void *, DWORD,
|
|
102
|
-
|
|
101
|
+
extern "HANDLE CreateFileMapping#{SUFFIX}(HANDLE, void *, DWORD, " +
|
|
102
|
+
"DWORD, DWORD, LPCTSTR)"
|
|
103
103
|
|
|
104
104
|
# args: hFileMappingObject, dwDesiredAccess, dwFileOffsetHigh,
|
|
105
105
|
# dwfileOffsetLow, dwNumberOfBytesToMap
|
|
@@ -112,8 +112,8 @@ module Net; module SSH; module Authentication
|
|
|
112
112
|
extern 'BOOL CloseHandle(HANDLE)'
|
|
113
113
|
|
|
114
114
|
# args: hWnd, Msg, wParam, lParam, fuFlags, uTimeout, lpdwResult
|
|
115
|
-
extern "LRESULT SendMessageTimeout#{SUFFIX}(HWND, UINT, WPARAM, LPARAM,
|
|
116
|
-
|
|
115
|
+
extern "LRESULT SendMessageTimeout#{SUFFIX}(HWND, UINT, WPARAM, LPARAM, " +
|
|
116
|
+
"UINT, UINT, PDWORD_PTR)"
|
|
117
117
|
|
|
118
118
|
# args: none
|
|
119
119
|
extern 'DWORD GetLastError()'
|
data/lib/net/ssh/config.rb
CHANGED
|
@@ -73,10 +73,11 @@ module Net; module SSH
|
|
|
73
73
|
# options.)
|
|
74
74
|
def load(path, host, settings={})
|
|
75
75
|
file = File.expand_path(path)
|
|
76
|
+
base_dir = File.dirname(file)
|
|
76
77
|
return settings unless File.readable?(file)
|
|
77
78
|
|
|
78
79
|
globals = {}
|
|
79
|
-
|
|
80
|
+
host_matched = false
|
|
80
81
|
seen_host = false
|
|
81
82
|
IO.foreach(file) do |line|
|
|
82
83
|
next if line =~ /^\s*(?:#.*)?$/
|
|
@@ -107,25 +108,35 @@ module Net; module SSH
|
|
|
107
108
|
|
|
108
109
|
# Check for negative patterns first. If the host matches, that overrules any other positive match.
|
|
109
110
|
# The host substring code is used to strip out the starting "!" so the regexp will be correct.
|
|
110
|
-
|
|
111
|
+
negative_matched = negative_hosts.any? { |h| host =~ pattern2regex(h[1..-1]) }
|
|
111
112
|
|
|
112
|
-
if
|
|
113
|
-
|
|
113
|
+
if negative_matched
|
|
114
|
+
host_matched = false
|
|
114
115
|
else
|
|
115
|
-
|
|
116
|
+
host_matched = positive_hosts.any? { |h| host =~ pattern2regex(h) }
|
|
116
117
|
end
|
|
117
118
|
|
|
118
119
|
seen_host = true
|
|
119
120
|
settings[key] = host
|
|
120
121
|
elsif !seen_host
|
|
121
|
-
|
|
122
|
+
case key
|
|
123
|
+
when 'identityfile'
|
|
122
124
|
(globals[key] ||= []) << value
|
|
125
|
+
when 'include'
|
|
126
|
+
included_file_paths(base_dir, value).each do |file_path|
|
|
127
|
+
globals = load(file_path, host, globals)
|
|
128
|
+
end
|
|
123
129
|
else
|
|
124
130
|
globals[key] = value unless settings.key?(key)
|
|
125
131
|
end
|
|
126
|
-
elsif
|
|
127
|
-
|
|
132
|
+
elsif host_matched
|
|
133
|
+
case key
|
|
134
|
+
when 'identityfile'
|
|
128
135
|
(settings[key] ||= []) << value
|
|
136
|
+
when 'include'
|
|
137
|
+
included_file_paths(base_dir, value).each do |file_path|
|
|
138
|
+
settings = load(file_path, host, settings)
|
|
139
|
+
end
|
|
129
140
|
else
|
|
130
141
|
settings[key] = value unless settings.key?(key)
|
|
131
142
|
end
|
|
@@ -214,7 +225,7 @@ module Net; module SSH
|
|
|
214
225
|
require 'net/ssh/proxy/command'
|
|
215
226
|
hash[:proxy] = Net::SSH::Proxy::Command.new(value)
|
|
216
227
|
end
|
|
217
|
-
|
|
228
|
+
when 'pubkeyauthentication'
|
|
218
229
|
if value
|
|
219
230
|
(hash[:auth_methods] << 'publickey').uniq!
|
|
220
231
|
else
|
|
@@ -288,6 +299,13 @@ module Net; module SSH
|
|
|
288
299
|
end
|
|
289
300
|
hash
|
|
290
301
|
end
|
|
302
|
+
|
|
303
|
+
def included_file_paths(base_dir, config_path)
|
|
304
|
+
paths = Dir.glob(File.expand_path(config_path)).select { |f| File.file?(f) }
|
|
305
|
+
paths += Dir.glob(File.join(base_dir, config_path)).select { |f| File.file?(f) }
|
|
306
|
+
paths.uniq
|
|
307
|
+
end
|
|
308
|
+
|
|
291
309
|
end
|
|
292
310
|
end
|
|
293
311
|
|
data/lib/net/ssh/version.rb
CHANGED
|
@@ -51,11 +51,11 @@ module Net; module SSH
|
|
|
51
51
|
MINOR = 0
|
|
52
52
|
|
|
53
53
|
# The tiny component of this version of the Net::SSH library
|
|
54
|
-
TINY =
|
|
54
|
+
TINY = 1
|
|
55
55
|
|
|
56
56
|
# The prerelease component of this version of the Net::SSH library
|
|
57
57
|
# nil allowed
|
|
58
|
-
PRE =
|
|
58
|
+
PRE = "rc1"
|
|
59
59
|
|
|
60
60
|
# The current version of the Net::SSH library as a Version instance
|
|
61
61
|
CURRENT = new(*[MAJOR, MINOR, TINY, PRE].compact)
|
data/net-ssh.gemspec
CHANGED
|
@@ -29,9 +29,9 @@ Gem::Specification.new do |spec|
|
|
|
29
29
|
spec.require_paths = ["lib"]
|
|
30
30
|
|
|
31
31
|
unless ENV['NET_SSH_NO_RBNACL']
|
|
32
|
-
spec.add_development_dependency("rbnacl-libsodium", "~> 1.0.
|
|
33
|
-
spec.add_development_dependency("rbnacl",
|
|
34
|
-
spec.add_development_dependency("bcrypt_pbkdf", "~> 1.0
|
|
32
|
+
spec.add_development_dependency("rbnacl-libsodium", "~> 1.0.11")
|
|
33
|
+
spec.add_development_dependency("rbnacl", ['>= 3.2.0','< 5.0'])
|
|
34
|
+
spec.add_development_dependency("bcrypt_pbkdf", "~> 1.0") unless RUBY_PLATFORM == "java"
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
spec.add_development_dependency "bundler", "~> 1.11"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: net-ssh
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.0.
|
|
4
|
+
version: 4.0.1.rc1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jamis Buck
|
|
@@ -32,14 +32,14 @@ cert_chain:
|
|
|
32
32
|
L4d54WIy4HkZCqQXoTSiK5HZMIdXkPk3F1bZdJ8Dy1sMRru0rUkkM5mW7TQ75mfW
|
|
33
33
|
Zp0QrZyNZhtitrXFbZneGRrIA/8G2Krft5Ly/A==
|
|
34
34
|
-----END CERTIFICATE-----
|
|
35
|
-
date:
|
|
35
|
+
date: 2017-01-01 00:00:00.000000000 Z
|
|
36
36
|
dependencies:
|
|
37
37
|
- !ruby/object:Gem::Dependency
|
|
38
38
|
requirement: !ruby/object:Gem::Requirement
|
|
39
39
|
requirements:
|
|
40
40
|
- - "~>"
|
|
41
41
|
- !ruby/object:Gem::Version
|
|
42
|
-
version: 1.0.
|
|
42
|
+
version: 1.0.11
|
|
43
43
|
name: rbnacl-libsodium
|
|
44
44
|
prerelease: false
|
|
45
45
|
type: :development
|
|
@@ -47,21 +47,27 @@ dependencies:
|
|
|
47
47
|
requirements:
|
|
48
48
|
- - "~>"
|
|
49
49
|
- !ruby/object:Gem::Version
|
|
50
|
-
version: 1.0.
|
|
50
|
+
version: 1.0.11
|
|
51
51
|
- !ruby/object:Gem::Dependency
|
|
52
52
|
requirement: !ruby/object:Gem::Requirement
|
|
53
53
|
requirements:
|
|
54
|
-
- - "
|
|
54
|
+
- - ">="
|
|
55
55
|
- !ruby/object:Gem::Version
|
|
56
|
-
version: 3.
|
|
56
|
+
version: 3.2.0
|
|
57
|
+
- - "<"
|
|
58
|
+
- !ruby/object:Gem::Version
|
|
59
|
+
version: '5.0'
|
|
57
60
|
name: rbnacl
|
|
58
61
|
prerelease: false
|
|
59
62
|
type: :development
|
|
60
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
61
64
|
requirements:
|
|
62
|
-
- - "
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: 3.2.0
|
|
68
|
+
- - "<"
|
|
63
69
|
- !ruby/object:Gem::Version
|
|
64
|
-
version:
|
|
70
|
+
version: '5.0'
|
|
65
71
|
- !ruby/object:Gem::Dependency
|
|
66
72
|
requirement: !ruby/object:Gem::Requirement
|
|
67
73
|
requirements:
|
|
@@ -259,9 +265,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
259
265
|
version: '2.0'
|
|
260
266
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
261
267
|
requirements:
|
|
262
|
-
- - "
|
|
268
|
+
- - ">"
|
|
263
269
|
- !ruby/object:Gem::Version
|
|
264
|
-
version:
|
|
270
|
+
version: 1.3.1
|
|
265
271
|
requirements: []
|
|
266
272
|
rubyforge_project:
|
|
267
273
|
rubygems_version: 2.6.8
|
metadata.gz.sig
CHANGED
|
Binary file
|