net-ssh 4.1.0 → 6.1.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.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.gitignore +5 -0
- data/.rubocop.yml +8 -2
- data/.rubocop_todo.yml +405 -552
- data/.travis.yml +23 -22
- data/CHANGES.txt +112 -1
- data/Gemfile +1 -7
- data/{Gemfile.norbnacl → Gemfile.noed25519} +1 -1
- data/Manifest +4 -5
- data/README.md +287 -0
- data/Rakefile +40 -29
- data/appveyor.yml +12 -6
- data/lib/net/ssh.rb +68 -32
- data/lib/net/ssh/authentication/agent.rb +234 -222
- data/lib/net/ssh/authentication/certificate.rb +175 -164
- data/lib/net/ssh/authentication/constants.rb +17 -14
- data/lib/net/ssh/authentication/ed25519.rb +162 -141
- data/lib/net/ssh/authentication/ed25519_loader.rb +32 -29
- data/lib/net/ssh/authentication/key_manager.rb +40 -9
- data/lib/net/ssh/authentication/methods/abstract.rb +53 -47
- data/lib/net/ssh/authentication/methods/hostbased.rb +32 -33
- data/lib/net/ssh/authentication/methods/keyboard_interactive.rb +1 -1
- data/lib/net/ssh/authentication/methods/none.rb +10 -10
- data/lib/net/ssh/authentication/methods/password.rb +13 -13
- data/lib/net/ssh/authentication/methods/publickey.rb +56 -55
- data/lib/net/ssh/authentication/pageant.rb +468 -465
- data/lib/net/ssh/authentication/pub_key_fingerprint.rb +43 -0
- data/lib/net/ssh/authentication/session.rb +130 -122
- data/lib/net/ssh/buffer.rb +345 -312
- data/lib/net/ssh/buffered_io.rb +163 -163
- data/lib/net/ssh/config.rb +316 -238
- data/lib/net/ssh/connection/channel.rb +670 -650
- data/lib/net/ssh/connection/constants.rb +30 -26
- data/lib/net/ssh/connection/event_loop.rb +108 -105
- data/lib/net/ssh/connection/keepalive.rb +54 -50
- data/lib/net/ssh/connection/session.rb +682 -671
- data/lib/net/ssh/connection/term.rb +180 -176
- data/lib/net/ssh/errors.rb +101 -99
- data/lib/net/ssh/key_factory.rb +195 -108
- data/lib/net/ssh/known_hosts.rb +161 -152
- data/lib/net/ssh/loggable.rb +57 -55
- data/lib/net/ssh/packet.rb +82 -78
- data/lib/net/ssh/prompt.rb +55 -53
- data/lib/net/ssh/proxy/command.rb +104 -89
- data/lib/net/ssh/proxy/errors.rb +12 -8
- data/lib/net/ssh/proxy/http.rb +93 -91
- data/lib/net/ssh/proxy/https.rb +42 -39
- data/lib/net/ssh/proxy/jump.rb +50 -47
- data/lib/net/ssh/proxy/socks4.rb +0 -2
- data/lib/net/ssh/proxy/socks5.rb +11 -12
- data/lib/net/ssh/service/forward.rb +370 -317
- data/lib/net/ssh/test.rb +83 -77
- data/lib/net/ssh/test/channel.rb +146 -142
- data/lib/net/ssh/test/extensions.rb +150 -146
- data/lib/net/ssh/test/kex.rb +35 -31
- data/lib/net/ssh/test/local_packet.rb +48 -44
- data/lib/net/ssh/test/packet.rb +87 -84
- data/lib/net/ssh/test/remote_packet.rb +35 -31
- data/lib/net/ssh/test/script.rb +173 -171
- data/lib/net/ssh/test/socket.rb +59 -55
- data/lib/net/ssh/transport/algorithms.rb +430 -364
- data/lib/net/ssh/transport/cipher_factory.rb +95 -91
- data/lib/net/ssh/transport/constants.rb +33 -25
- data/lib/net/ssh/transport/ctr.rb +33 -11
- data/lib/net/ssh/transport/hmac.rb +15 -13
- data/lib/net/ssh/transport/hmac/abstract.rb +82 -63
- data/lib/net/ssh/transport/hmac/sha2_256.rb +7 -11
- data/lib/net/ssh/transport/hmac/sha2_256_96.rb +4 -8
- data/lib/net/ssh/transport/hmac/sha2_256_etm.rb +12 -0
- data/lib/net/ssh/transport/hmac/sha2_512.rb +6 -9
- data/lib/net/ssh/transport/hmac/sha2_512_96.rb +4 -8
- data/lib/net/ssh/transport/hmac/sha2_512_etm.rb +12 -0
- data/lib/net/ssh/transport/identity_cipher.rb +55 -51
- data/lib/net/ssh/transport/kex.rb +14 -13
- data/lib/net/ssh/transport/kex/abstract.rb +123 -0
- data/lib/net/ssh/transport/kex/abstract5656.rb +72 -0
- data/lib/net/ssh/transport/kex/curve25519_sha256.rb +38 -0
- data/lib/net/ssh/transport/kex/curve25519_sha256_loader.rb +30 -0
- data/lib/net/ssh/transport/kex/diffie_hellman_group14_sha1.rb +33 -40
- data/lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb +112 -217
- data/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb +53 -62
- data/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha256.rb +5 -9
- data/lib/net/ssh/transport/kex/ecdh_sha2_nistp256.rb +36 -90
- data/lib/net/ssh/transport/kex/ecdh_sha2_nistp384.rb +18 -10
- data/lib/net/ssh/transport/kex/ecdh_sha2_nistp521.rb +18 -10
- data/lib/net/ssh/transport/key_expander.rb +29 -25
- data/lib/net/ssh/transport/openssl.rb +116 -116
- data/lib/net/ssh/transport/packet_stream.rb +223 -190
- data/lib/net/ssh/transport/server_version.rb +64 -66
- data/lib/net/ssh/transport/session.rb +306 -257
- data/lib/net/ssh/transport/state.rb +198 -196
- data/lib/net/ssh/verifiers/accept_new.rb +35 -0
- data/lib/net/ssh/verifiers/accept_new_or_local_tunnel.rb +34 -0
- data/lib/net/ssh/verifiers/always.rb +56 -0
- data/lib/net/ssh/verifiers/never.rb +21 -0
- data/lib/net/ssh/version.rb +55 -53
- data/net-ssh-public_cert.pem +18 -19
- data/net-ssh.gemspec +12 -11
- data/support/ssh_tunnel_bug.rb +2 -2
- metadata +86 -75
- metadata.gz.sig +0 -0
- data/Gemfile.norbnacl.lock +0 -41
- data/README.rdoc +0 -169
- data/lib/net/ssh/ruby_compat.rb +0 -24
- data/lib/net/ssh/verifiers/lenient.rb +0 -30
- data/lib/net/ssh/verifiers/null.rb +0 -12
- data/lib/net/ssh/verifiers/secure.rb +0 -52
- data/lib/net/ssh/verifiers/strict.rb +0 -24
- data/support/arcfour_check.rb +0 -20
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'net/ssh/errors'
|
2
|
+
require 'net/ssh/known_hosts'
|
3
|
+
|
4
|
+
module Net
|
5
|
+
module SSH
|
6
|
+
module Verifiers
|
7
|
+
|
8
|
+
# Does a strict host verification, looking the server up in the known
|
9
|
+
# host files to see if a key has already been seen for this server. If this
|
10
|
+
# server does not appear in any host file, an exception will be raised
|
11
|
+
# (HostKeyUnknown). This is in contrast to the "Strict" class, which will
|
12
|
+
# silently add the key to your known_hosts file. If the server does appear at
|
13
|
+
# least once, but the key given does not match any known for the server, an
|
14
|
+
# exception will be raised (HostKeyMismatch).
|
15
|
+
# Otherwise, this returns true.
|
16
|
+
class Always
|
17
|
+
def verify(arguments)
|
18
|
+
host_keys = arguments[:session].host_keys
|
19
|
+
|
20
|
+
# We've never seen this host before, so raise an exception.
|
21
|
+
process_cache_miss(host_keys, arguments, HostKeyUnknown, "is unknown") if host_keys.empty?
|
22
|
+
|
23
|
+
# If we found any matches, check to see that the key type and
|
24
|
+
# blob also match.
|
25
|
+
found = host_keys.any? do |key|
|
26
|
+
key.ssh_type == arguments[:key].ssh_type &&
|
27
|
+
key.to_blob == arguments[:key].to_blob
|
28
|
+
end
|
29
|
+
|
30
|
+
# If a match was found, return true. Otherwise, raise an exception
|
31
|
+
# indicating that the key was not recognized.
|
32
|
+
process_cache_miss(host_keys, arguments, HostKeyMismatch, "does not match") unless found
|
33
|
+
|
34
|
+
found
|
35
|
+
end
|
36
|
+
|
37
|
+
def verify_signature(&block)
|
38
|
+
yield
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def process_cache_miss(host_keys, args, exc_class, message)
|
44
|
+
exception = exc_class.new("fingerprint #{args[:fingerprint]} " +
|
45
|
+
"#{message} for #{host_keys.host.inspect}")
|
46
|
+
exception.data = args
|
47
|
+
exception.callback = Proc.new do
|
48
|
+
host_keys.add_host_key(args[:key])
|
49
|
+
end
|
50
|
+
raise exception
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Net
|
2
|
+
module SSH
|
3
|
+
module Verifiers
|
4
|
+
|
5
|
+
# This host key verifier simply allows every key it sees, without
|
6
|
+
# any verification. This is simple, but very insecure because it
|
7
|
+
# exposes you to MiTM attacks.
|
8
|
+
class Never
|
9
|
+
# Returns true.
|
10
|
+
def verify(arguments)
|
11
|
+
true
|
12
|
+
end
|
13
|
+
|
14
|
+
def verify_signature(&block)
|
15
|
+
true
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/net/ssh/version.rb
CHANGED
@@ -1,66 +1,68 @@
|
|
1
|
-
module Net
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
1
|
+
module Net
|
2
|
+
module SSH
|
3
|
+
# A class for describing the current version of a library. The version
|
4
|
+
# consists of three parts: the +major+ number, the +minor+ number, and the
|
5
|
+
# +tiny+ (or +patch+) number.
|
6
|
+
#
|
7
|
+
# Two Version instances may be compared, so that you can test that a version
|
8
|
+
# of a library is what you require:
|
9
|
+
#
|
10
|
+
# require 'net/ssh/version'
|
11
|
+
#
|
12
|
+
# if Net::SSH::Version::CURRENT < Net::SSH::Version[2,1,0]
|
13
|
+
# abort "your software is too old!"
|
14
|
+
# end
|
15
|
+
class Version
|
16
|
+
include Comparable
|
16
17
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
# A convenience method for instantiating a new Version instance with the
|
19
|
+
# given +major+, +minor+, and +tiny+ components.
|
20
|
+
def self.[](major, minor, tiny, pre = nil)
|
21
|
+
new(major, minor, tiny, pre)
|
22
|
+
end
|
22
23
|
|
23
|
-
|
24
|
+
attr_reader :major, :minor, :tiny
|
24
25
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
26
|
+
# Create a new Version object with the given components.
|
27
|
+
def initialize(major, minor, tiny, pre = nil)
|
28
|
+
@major, @minor, @tiny, @pre = major, minor, tiny, pre
|
29
|
+
end
|
29
30
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
31
|
+
# Compare this version to the given +version+ object.
|
32
|
+
def <=>(version)
|
33
|
+
to_i <=> version.to_i
|
34
|
+
end
|
34
35
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
36
|
+
# Converts this version object to a string, where each of the three
|
37
|
+
# version components are joined by the '.' character. E.g., 2.0.0.
|
38
|
+
def to_s
|
39
|
+
@to_s ||= [@major, @minor, @tiny, @pre].compact.join(".")
|
40
|
+
end
|
40
41
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
42
|
+
# Converts this version to a canonical integer that may be compared
|
43
|
+
# against other version objects.
|
44
|
+
def to_i
|
45
|
+
@to_i ||= @major * 1_000_000 + @minor * 1_000 + @tiny
|
46
|
+
end
|
46
47
|
|
47
|
-
|
48
|
-
|
48
|
+
# The major component of this version of the Net::SSH library
|
49
|
+
MAJOR = 6
|
49
50
|
|
50
|
-
|
51
|
-
|
51
|
+
# The minor component of this version of the Net::SSH library
|
52
|
+
MINOR = 1
|
52
53
|
|
53
|
-
|
54
|
-
|
54
|
+
# The tiny component of this version of the Net::SSH library
|
55
|
+
TINY = 0
|
55
56
|
|
56
|
-
|
57
|
-
|
58
|
-
|
57
|
+
# The prerelease component of this version of the Net::SSH library
|
58
|
+
# nil allowed
|
59
|
+
PRE = nil
|
59
60
|
|
60
|
-
|
61
|
-
|
61
|
+
# The current version of the Net::SSH library as a Version instance
|
62
|
+
CURRENT = new(*[MAJOR, MINOR, TINY, PRE].compact)
|
62
63
|
|
63
|
-
|
64
|
-
|
64
|
+
# The current version of the Net::SSH library as a String
|
65
|
+
STRING = CURRENT.to_s
|
66
|
+
end
|
65
67
|
end
|
66
|
-
end
|
68
|
+
end
|
data/net-ssh-public_cert.pem
CHANGED
@@ -1,21 +1,20 @@
|
|
1
1
|
-----BEGIN CERTIFICATE-----
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
Zp0QrZyNZhtitrXFbZneGRrIA/8G2Krft5Ly/A==
|
2
|
+
MIIDQDCCAiigAwIBAgIBATANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpuZXRz
|
3
|
+
c2gvREM9c29sdXRpb3VzL0RDPWNvbTAeFw0yMDA0MTEwNTQyMTZaFw0yMTA0MTEw
|
4
|
+
NTQyMTZaMCUxIzAhBgNVBAMMGm5ldHNzaC9EQz1zb2x1dGlvdXMvREM9Y29tMIIB
|
5
|
+
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxieE22fR/qmdPKUHyYTyUx2g
|
6
|
+
wskLwrCkxay+Tvc97ZZUOwf85LDDDPqhQaTWLvRwnIOMgQE2nBPzwalVclK6a+pW
|
7
|
+
x/18KDeZY15vm3Qn5p42b0wi9hUxOqPm3J2hdCLCcgtENgdX21nVzejn39WVqFJO
|
8
|
+
lntgSDNW5+kCS8QaRsmIbzj17GKKkrsw39kiQw7FhWfJFeTjddzoZiWwc59KA/Bx
|
9
|
+
fBbmDnsMLAtAtauMOxORrbx3EOY7sHku/kSrMg3FXFay7jc6BkbbUij+MjJ/k82l
|
10
|
+
4o8o0YO4BAnya90xgEmgOG0LCCxRhuXQFnMDuDjK2XnUe0h4/6NCn94C+z9GsQID
|
11
|
+
AQABo3sweTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUBfKiwO2e
|
12
|
+
M4NEiRrVG793qEPLYyMwHwYDVR0RBBgwFoEUbmV0c3NoQHNvbHV0aW91cy5jb20w
|
13
|
+
HwYDVR0SBBgwFoEUbmV0c3NoQHNvbHV0aW91cy5jb20wDQYJKoZIhvcNAQELBQAD
|
14
|
+
ggEBAJTylLYXo5AybI+tLq79+OXQ8/nbGZ7iydU1uTHQud1JZQ1MRV5dRDjeBmCT
|
15
|
+
lRxaEZT4NopEzuHO0sm3nVpSYtQwTaQyVKmnllNI3kc0f4H6i7dpPd7eUAQ3/O2I
|
16
|
+
eWjDJlzu0zwqTa+N6vzS8Y3ypDSGgb1gJKzluOv7viVUAthmuuJws7XQq/qMMaNw
|
17
|
+
3163oCKuJvMW1w8kdUMQqvlLJkVKaxz9K64r2+a04Ok1cKloTB3OSowfAYFoRlqP
|
18
|
+
voajiJNS75Pw/2j13WnPB4Q6w7dHSb57E/VluBpVKmcQZN0dGdAkEIVty3v7kw9g
|
19
|
+
y++VpCpWM/PstIFv4ApZMf501UY=
|
21
20
|
-----END CERTIFICATE-----
|
data/net-ssh.gemspec
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# coding: utf-8
|
2
1
|
require_relative 'lib/net/ssh/version'
|
3
2
|
|
4
3
|
Gem::Specification.new do |spec|
|
@@ -16,11 +15,14 @@ Gem::Specification.new do |spec|
|
|
16
15
|
spec.description = %q{Net::SSH: a pure-Ruby implementation of the SSH2 client protocol. It allows you to write programs that invoke and interact with processes on remote servers, via SSH2.}
|
17
16
|
spec.homepage = "https://github.com/net-ssh/net-ssh"
|
18
17
|
spec.license = "MIT"
|
19
|
-
spec.required_ruby_version = Gem::Requirement.new(">= 2.
|
18
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.3")
|
19
|
+
spec.metadata = {
|
20
|
+
"changelog_uri" => "https://github.com/net-ssh/net-ssh/blob/master/CHANGES.txt"
|
21
|
+
}
|
20
22
|
|
21
23
|
spec.extra_rdoc_files = [
|
22
24
|
"LICENSE.txt",
|
23
|
-
"README.
|
25
|
+
"README.md"
|
24
26
|
]
|
25
27
|
|
26
28
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
@@ -28,16 +30,15 @@ Gem::Specification.new do |spec|
|
|
28
30
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
29
31
|
spec.require_paths = ["lib"]
|
30
32
|
|
31
|
-
unless ENV['
|
32
|
-
spec.add_development_dependency("rbnacl-libsodium", "~> 1.0.11")
|
33
|
-
spec.add_development_dependency("rbnacl", ['>= 3.2.0','< 5.0'])
|
33
|
+
unless ENV['NET_SSH_NO_ED25519']
|
34
34
|
spec.add_development_dependency("bcrypt_pbkdf", "~> 1.0") unless RUBY_PLATFORM == "java"
|
35
|
+
spec.add_development_dependency("ed25519", "~> 1.2")
|
36
|
+
spec.add_development_dependency('x25519') unless RUBY_PLATFORM == 'java'
|
35
37
|
end
|
36
38
|
|
37
|
-
spec.add_development_dependency "bundler", "
|
38
|
-
|
39
|
-
spec.add_development_dependency "rake", "~> 12.0"
|
39
|
+
spec.add_development_dependency "bundler", ">= 1.17"
|
40
40
|
spec.add_development_dependency "minitest", "~> 5.10"
|
41
|
-
spec.add_development_dependency "
|
42
|
-
spec.add_development_dependency "
|
41
|
+
spec.add_development_dependency "mocha", "~> 1.11.2"
|
42
|
+
spec.add_development_dependency "rake", "~> 12.0"
|
43
|
+
spec.add_development_dependency "rubocop", "~> 0.74.0"
|
43
44
|
end
|
data/support/ssh_tunnel_bug.rb
CHANGED
@@ -39,8 +39,8 @@ puts "Configure your browser proxy to localhost:#{LOCAL_PORT}"
|
|
39
39
|
begin
|
40
40
|
session = Net::SSH.start(host, user, password: pass)
|
41
41
|
session.forward.local(LOCAL_PORT, host, PROXY_PORT)
|
42
|
-
session.loop{true}
|
43
|
-
rescue => e
|
42
|
+
session.loop {true}
|
43
|
+
rescue StandardError => e
|
44
44
|
puts e.message
|
45
45
|
puts e.backtrace
|
46
46
|
end
|
metadata
CHANGED
@@ -1,143 +1,150 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-ssh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 6.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jamis Buck
|
8
8
|
- Delano Mandelbaum
|
9
9
|
- Miklós Fazekas
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain:
|
13
13
|
- |
|
14
14
|
-----BEGIN CERTIFICATE-----
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
Zp0QrZyNZhtitrXFbZneGRrIA/8G2Krft5Ly/A==
|
15
|
+
MIIDQDCCAiigAwIBAgIBATANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQDDBpuZXRz
|
16
|
+
c2gvREM9c29sdXRpb3VzL0RDPWNvbTAeFw0yMDA0MTEwNTQyMTZaFw0yMTA0MTEw
|
17
|
+
NTQyMTZaMCUxIzAhBgNVBAMMGm5ldHNzaC9EQz1zb2x1dGlvdXMvREM9Y29tMIIB
|
18
|
+
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxieE22fR/qmdPKUHyYTyUx2g
|
19
|
+
wskLwrCkxay+Tvc97ZZUOwf85LDDDPqhQaTWLvRwnIOMgQE2nBPzwalVclK6a+pW
|
20
|
+
x/18KDeZY15vm3Qn5p42b0wi9hUxOqPm3J2hdCLCcgtENgdX21nVzejn39WVqFJO
|
21
|
+
lntgSDNW5+kCS8QaRsmIbzj17GKKkrsw39kiQw7FhWfJFeTjddzoZiWwc59KA/Bx
|
22
|
+
fBbmDnsMLAtAtauMOxORrbx3EOY7sHku/kSrMg3FXFay7jc6BkbbUij+MjJ/k82l
|
23
|
+
4o8o0YO4BAnya90xgEmgOG0LCCxRhuXQFnMDuDjK2XnUe0h4/6NCn94C+z9GsQID
|
24
|
+
AQABo3sweTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUBfKiwO2e
|
25
|
+
M4NEiRrVG793qEPLYyMwHwYDVR0RBBgwFoEUbmV0c3NoQHNvbHV0aW91cy5jb20w
|
26
|
+
HwYDVR0SBBgwFoEUbmV0c3NoQHNvbHV0aW91cy5jb20wDQYJKoZIhvcNAQELBQAD
|
27
|
+
ggEBAJTylLYXo5AybI+tLq79+OXQ8/nbGZ7iydU1uTHQud1JZQ1MRV5dRDjeBmCT
|
28
|
+
lRxaEZT4NopEzuHO0sm3nVpSYtQwTaQyVKmnllNI3kc0f4H6i7dpPd7eUAQ3/O2I
|
29
|
+
eWjDJlzu0zwqTa+N6vzS8Y3ypDSGgb1gJKzluOv7viVUAthmuuJws7XQq/qMMaNw
|
30
|
+
3163oCKuJvMW1w8kdUMQqvlLJkVKaxz9K64r2+a04Ok1cKloTB3OSowfAYFoRlqP
|
31
|
+
voajiJNS75Pw/2j13WnPB4Q6w7dHSb57E/VluBpVKmcQZN0dGdAkEIVty3v7kw9g
|
32
|
+
y++VpCpWM/PstIFv4ApZMf501UY=
|
34
33
|
-----END CERTIFICATE-----
|
35
|
-
date:
|
34
|
+
date: 2020-06-09 00:00:00.000000000 Z
|
36
35
|
dependencies:
|
37
36
|
- !ruby/object:Gem::Dependency
|
37
|
+
name: bcrypt_pbkdf
|
38
38
|
requirement: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 1.0
|
43
|
-
|
42
|
+
version: '1.0'
|
43
|
+
type: :development
|
44
44
|
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '1.0'
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: ed25519
|
52
|
+
requirement: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - "~>"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '1.2'
|
45
57
|
type: :development
|
58
|
+
prerelease: false
|
46
59
|
version_requirements: !ruby/object:Gem::Requirement
|
47
60
|
requirements:
|
48
61
|
- - "~>"
|
49
62
|
- !ruby/object:Gem::Version
|
50
|
-
version: 1.
|
63
|
+
version: '1.2'
|
51
64
|
- !ruby/object:Gem::Dependency
|
65
|
+
name: x25519
|
52
66
|
requirement: !ruby/object:Gem::Requirement
|
53
67
|
requirements:
|
54
68
|
- - ">="
|
55
69
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
57
|
-
- - "<"
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: '5.0'
|
60
|
-
name: rbnacl
|
61
|
-
prerelease: false
|
70
|
+
version: '0'
|
62
71
|
type: :development
|
72
|
+
prerelease: false
|
63
73
|
version_requirements: !ruby/object:Gem::Requirement
|
64
74
|
requirements:
|
65
75
|
- - ">="
|
66
76
|
- !ruby/object:Gem::Version
|
67
|
-
version:
|
68
|
-
- - "<"
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: '5.0'
|
77
|
+
version: '0'
|
71
78
|
- !ruby/object:Gem::Dependency
|
79
|
+
name: bundler
|
72
80
|
requirement: !ruby/object:Gem::Requirement
|
73
81
|
requirements:
|
74
|
-
- - "
|
82
|
+
- - ">="
|
75
83
|
- !ruby/object:Gem::Version
|
76
|
-
version: '1.
|
77
|
-
name: bundler
|
78
|
-
prerelease: false
|
84
|
+
version: '1.17'
|
79
85
|
type: :development
|
86
|
+
prerelease: false
|
80
87
|
version_requirements: !ruby/object:Gem::Requirement
|
81
88
|
requirements:
|
82
|
-
- - "
|
89
|
+
- - ">="
|
83
90
|
- !ruby/object:Gem::Version
|
84
|
-
version: '1.
|
91
|
+
version: '1.17'
|
85
92
|
- !ruby/object:Gem::Dependency
|
93
|
+
name: minitest
|
86
94
|
requirement: !ruby/object:Gem::Requirement
|
87
95
|
requirements:
|
88
96
|
- - "~>"
|
89
97
|
- !ruby/object:Gem::Version
|
90
|
-
version: '
|
91
|
-
name: rake
|
92
|
-
prerelease: false
|
98
|
+
version: '5.10'
|
93
99
|
type: :development
|
100
|
+
prerelease: false
|
94
101
|
version_requirements: !ruby/object:Gem::Requirement
|
95
102
|
requirements:
|
96
103
|
- - "~>"
|
97
104
|
- !ruby/object:Gem::Version
|
98
|
-
version: '
|
105
|
+
version: '5.10'
|
99
106
|
- !ruby/object:Gem::Dependency
|
107
|
+
name: mocha
|
100
108
|
requirement: !ruby/object:Gem::Requirement
|
101
109
|
requirements:
|
102
110
|
- - "~>"
|
103
111
|
- !ruby/object:Gem::Version
|
104
|
-
version:
|
105
|
-
name: minitest
|
106
|
-
prerelease: false
|
112
|
+
version: 1.11.2
|
107
113
|
type: :development
|
114
|
+
prerelease: false
|
108
115
|
version_requirements: !ruby/object:Gem::Requirement
|
109
116
|
requirements:
|
110
117
|
- - "~>"
|
111
118
|
- !ruby/object:Gem::Version
|
112
|
-
version:
|
119
|
+
version: 1.11.2
|
113
120
|
- !ruby/object:Gem::Dependency
|
121
|
+
name: rake
|
114
122
|
requirement: !ruby/object:Gem::Requirement
|
115
123
|
requirements:
|
116
124
|
- - "~>"
|
117
125
|
- !ruby/object:Gem::Version
|
118
|
-
version:
|
119
|
-
name: rubocop
|
120
|
-
prerelease: false
|
126
|
+
version: '12.0'
|
121
127
|
type: :development
|
128
|
+
prerelease: false
|
122
129
|
version_requirements: !ruby/object:Gem::Requirement
|
123
130
|
requirements:
|
124
131
|
- - "~>"
|
125
132
|
- !ruby/object:Gem::Version
|
126
|
-
version:
|
133
|
+
version: '12.0'
|
127
134
|
- !ruby/object:Gem::Dependency
|
135
|
+
name: rubocop
|
128
136
|
requirement: !ruby/object:Gem::Requirement
|
129
137
|
requirements:
|
130
|
-
- - "
|
138
|
+
- - "~>"
|
131
139
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
133
|
-
name: mocha
|
134
|
-
prerelease: false
|
140
|
+
version: 0.74.0
|
135
141
|
type: :development
|
142
|
+
prerelease: false
|
136
143
|
version_requirements: !ruby/object:Gem::Requirement
|
137
144
|
requirements:
|
138
|
-
- - "
|
145
|
+
- - "~>"
|
139
146
|
- !ruby/object:Gem::Version
|
140
|
-
version:
|
147
|
+
version: 0.74.0
|
141
148
|
description: 'Net::SSH: a pure-Ruby implementation of the SSH2 client protocol. It
|
142
149
|
allows you to write programs that invoke and interact with processes on remote servers,
|
143
150
|
via SSH2.'
|
@@ -147,7 +154,7 @@ executables: []
|
|
147
154
|
extensions: []
|
148
155
|
extra_rdoc_files:
|
149
156
|
- LICENSE.txt
|
150
|
-
- README.
|
157
|
+
- README.md
|
151
158
|
files:
|
152
159
|
- ".gitignore"
|
153
160
|
- ".rubocop.yml"
|
@@ -155,12 +162,11 @@ files:
|
|
155
162
|
- ".travis.yml"
|
156
163
|
- CHANGES.txt
|
157
164
|
- Gemfile
|
158
|
-
- Gemfile.
|
159
|
-
- Gemfile.norbnacl.lock
|
165
|
+
- Gemfile.noed25519
|
160
166
|
- ISSUE_TEMPLATE.md
|
161
167
|
- LICENSE.txt
|
162
168
|
- Manifest
|
163
|
-
- README.
|
169
|
+
- README.md
|
164
170
|
- Rakefile
|
165
171
|
- THANKS.txt
|
166
172
|
- appveyor.yml
|
@@ -178,6 +184,7 @@ files:
|
|
178
184
|
- lib/net/ssh/authentication/methods/password.rb
|
179
185
|
- lib/net/ssh/authentication/methods/publickey.rb
|
180
186
|
- lib/net/ssh/authentication/pageant.rb
|
187
|
+
- lib/net/ssh/authentication/pub_key_fingerprint.rb
|
181
188
|
- lib/net/ssh/authentication/session.rb
|
182
189
|
- lib/net/ssh/buffer.rb
|
183
190
|
- lib/net/ssh/buffered_io.rb
|
@@ -201,7 +208,6 @@ files:
|
|
201
208
|
- lib/net/ssh/proxy/jump.rb
|
202
209
|
- lib/net/ssh/proxy/socks4.rb
|
203
210
|
- lib/net/ssh/proxy/socks5.rb
|
204
|
-
- lib/net/ssh/ruby_compat.rb
|
205
211
|
- lib/net/ssh/service/forward.rb
|
206
212
|
- lib/net/ssh/test.rb
|
207
213
|
- lib/net/ssh/test/channel.rb
|
@@ -226,10 +232,16 @@ files:
|
|
226
232
|
- lib/net/ssh/transport/hmac/sha1_96.rb
|
227
233
|
- lib/net/ssh/transport/hmac/sha2_256.rb
|
228
234
|
- lib/net/ssh/transport/hmac/sha2_256_96.rb
|
235
|
+
- lib/net/ssh/transport/hmac/sha2_256_etm.rb
|
229
236
|
- lib/net/ssh/transport/hmac/sha2_512.rb
|
230
237
|
- lib/net/ssh/transport/hmac/sha2_512_96.rb
|
238
|
+
- lib/net/ssh/transport/hmac/sha2_512_etm.rb
|
231
239
|
- lib/net/ssh/transport/identity_cipher.rb
|
232
240
|
- lib/net/ssh/transport/kex.rb
|
241
|
+
- lib/net/ssh/transport/kex/abstract.rb
|
242
|
+
- lib/net/ssh/transport/kex/abstract5656.rb
|
243
|
+
- lib/net/ssh/transport/kex/curve25519_sha256.rb
|
244
|
+
- lib/net/ssh/transport/kex/curve25519_sha256_loader.rb
|
233
245
|
- lib/net/ssh/transport/kex/diffie_hellman_group14_sha1.rb
|
234
246
|
- lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb
|
235
247
|
- lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb
|
@@ -243,20 +255,20 @@ files:
|
|
243
255
|
- lib/net/ssh/transport/server_version.rb
|
244
256
|
- lib/net/ssh/transport/session.rb
|
245
257
|
- lib/net/ssh/transport/state.rb
|
246
|
-
- lib/net/ssh/verifiers/
|
247
|
-
- lib/net/ssh/verifiers/
|
248
|
-
- lib/net/ssh/verifiers/
|
249
|
-
- lib/net/ssh/verifiers/
|
258
|
+
- lib/net/ssh/verifiers/accept_new.rb
|
259
|
+
- lib/net/ssh/verifiers/accept_new_or_local_tunnel.rb
|
260
|
+
- lib/net/ssh/verifiers/always.rb
|
261
|
+
- lib/net/ssh/verifiers/never.rb
|
250
262
|
- lib/net/ssh/version.rb
|
251
263
|
- net-ssh-public_cert.pem
|
252
264
|
- net-ssh.gemspec
|
253
|
-
- support/arcfour_check.rb
|
254
265
|
- support/ssh_tunnel_bug.rb
|
255
266
|
homepage: https://github.com/net-ssh/net-ssh
|
256
267
|
licenses:
|
257
268
|
- MIT
|
258
|
-
metadata:
|
259
|
-
|
269
|
+
metadata:
|
270
|
+
changelog_uri: https://github.com/net-ssh/net-ssh/blob/master/CHANGES.txt
|
271
|
+
post_install_message:
|
260
272
|
rdoc_options: []
|
261
273
|
require_paths:
|
262
274
|
- lib
|
@@ -264,16 +276,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
264
276
|
requirements:
|
265
277
|
- - ">="
|
266
278
|
- !ruby/object:Gem::Version
|
267
|
-
version: '2.
|
279
|
+
version: '2.3'
|
268
280
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
269
281
|
requirements:
|
270
282
|
- - ">="
|
271
283
|
- !ruby/object:Gem::Version
|
272
284
|
version: '0'
|
273
285
|
requirements: []
|
274
|
-
|
275
|
-
|
276
|
-
signing_key:
|
286
|
+
rubygems_version: 3.0.3
|
287
|
+
signing_key:
|
277
288
|
specification_version: 4
|
278
289
|
summary: 'Net::SSH: a pure-Ruby implementation of the SSH2 client protocol.'
|
279
290
|
test_files: []
|