net-ssh 4.1.0 → 6.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|