net-ssh 6.1.0 → 7.3.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.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/.dockerignore +6 -0
  4. data/.github/FUNDING.yml +1 -0
  5. data/.github/config/rubocop_linter_action.yml +4 -0
  6. data/.github/workflows/ci-with-docker.yml +44 -0
  7. data/.github/workflows/ci.yml +94 -0
  8. data/.github/workflows/rubocop.yml +16 -0
  9. data/.gitignore +4 -0
  10. data/.rubocop.yml +12 -1
  11. data/.rubocop_todo.yml +475 -376
  12. data/CHANGES.txt +64 -3
  13. data/DEVELOPMENT.md +23 -0
  14. data/Dockerfile +29 -0
  15. data/Dockerfile.openssl3 +17 -0
  16. data/Gemfile +2 -0
  17. data/Gemfile.noed25519 +2 -0
  18. data/Gemfile.norbnacl +12 -0
  19. data/README.md +38 -22
  20. data/Rakefile +92 -0
  21. data/SECURITY.md +4 -0
  22. data/docker-compose.yml +25 -0
  23. data/lib/net/ssh/authentication/agent.rb +29 -13
  24. data/lib/net/ssh/authentication/certificate.rb +14 -11
  25. data/lib/net/ssh/authentication/constants.rb +0 -1
  26. data/lib/net/ssh/authentication/ed25519.rb +14 -11
  27. data/lib/net/ssh/authentication/ed25519_loader.rb +4 -7
  28. data/lib/net/ssh/authentication/key_manager.rb +65 -36
  29. data/lib/net/ssh/authentication/methods/abstract.rb +12 -3
  30. data/lib/net/ssh/authentication/methods/hostbased.rb +3 -5
  31. data/lib/net/ssh/authentication/methods/keyboard_interactive.rb +2 -2
  32. data/lib/net/ssh/authentication/methods/none.rb +6 -9
  33. data/lib/net/ssh/authentication/methods/password.rb +2 -3
  34. data/lib/net/ssh/authentication/methods/publickey.rb +57 -17
  35. data/lib/net/ssh/authentication/pageant.rb +97 -97
  36. data/lib/net/ssh/authentication/pub_key_fingerprint.rb +3 -3
  37. data/lib/net/ssh/authentication/session.rb +25 -17
  38. data/lib/net/ssh/buffer.rb +71 -51
  39. data/lib/net/ssh/buffered_io.rb +25 -26
  40. data/lib/net/ssh/config.rb +33 -20
  41. data/lib/net/ssh/connection/channel.rb +84 -82
  42. data/lib/net/ssh/connection/constants.rb +0 -4
  43. data/lib/net/ssh/connection/event_loop.rb +30 -24
  44. data/lib/net/ssh/connection/keepalive.rb +12 -12
  45. data/lib/net/ssh/connection/session.rb +109 -108
  46. data/lib/net/ssh/connection/term.rb +56 -58
  47. data/lib/net/ssh/errors.rb +12 -12
  48. data/lib/net/ssh/key_factory.rb +7 -8
  49. data/lib/net/ssh/known_hosts.rb +86 -18
  50. data/lib/net/ssh/loggable.rb +8 -9
  51. data/lib/net/ssh/packet.rb +1 -1
  52. data/lib/net/ssh/prompt.rb +9 -11
  53. data/lib/net/ssh/proxy/command.rb +1 -1
  54. data/lib/net/ssh/proxy/errors.rb +2 -4
  55. data/lib/net/ssh/proxy/http.rb +18 -20
  56. data/lib/net/ssh/proxy/https.rb +8 -10
  57. data/lib/net/ssh/proxy/jump.rb +8 -10
  58. data/lib/net/ssh/proxy/socks4.rb +2 -4
  59. data/lib/net/ssh/proxy/socks5.rb +3 -5
  60. data/lib/net/ssh/service/forward.rb +7 -7
  61. data/lib/net/ssh/test/channel.rb +24 -26
  62. data/lib/net/ssh/test/extensions.rb +35 -35
  63. data/lib/net/ssh/test/kex.rb +6 -8
  64. data/lib/net/ssh/test/local_packet.rb +0 -2
  65. data/lib/net/ssh/test/packet.rb +3 -3
  66. data/lib/net/ssh/test/remote_packet.rb +6 -8
  67. data/lib/net/ssh/test/script.rb +25 -27
  68. data/lib/net/ssh/test/socket.rb +12 -15
  69. data/lib/net/ssh/test.rb +4 -5
  70. data/lib/net/ssh/transport/aes128_gcm.rb +40 -0
  71. data/lib/net/ssh/transport/aes256_gcm.rb +40 -0
  72. data/lib/net/ssh/transport/algorithms.rb +51 -19
  73. data/lib/net/ssh/transport/chacha20_poly1305_cipher.rb +117 -0
  74. data/lib/net/ssh/transport/chacha20_poly1305_cipher_loader.rb +17 -0
  75. data/lib/net/ssh/transport/cipher_factory.rb +56 -29
  76. data/lib/net/ssh/transport/constants.rb +3 -3
  77. data/lib/net/ssh/transport/ctr.rb +7 -7
  78. data/lib/net/ssh/transport/gcm_cipher.rb +207 -0
  79. data/lib/net/ssh/transport/hmac/abstract.rb +20 -5
  80. data/lib/net/ssh/transport/hmac/md5.rb +0 -2
  81. data/lib/net/ssh/transport/hmac/md5_96.rb +0 -2
  82. data/lib/net/ssh/transport/hmac/none.rb +0 -2
  83. data/lib/net/ssh/transport/hmac/ripemd160.rb +0 -2
  84. data/lib/net/ssh/transport/hmac/sha1.rb +0 -2
  85. data/lib/net/ssh/transport/hmac/sha1_96.rb +0 -2
  86. data/lib/net/ssh/transport/hmac.rb +12 -12
  87. data/lib/net/ssh/transport/identity_cipher.rb +19 -13
  88. data/lib/net/ssh/transport/kex/abstract.rb +12 -5
  89. data/lib/net/ssh/transport/kex/abstract5656.rb +1 -1
  90. data/lib/net/ssh/transport/kex/curve25519_sha256.rb +2 -1
  91. data/lib/net/ssh/transport/kex/diffie_hellman_group14_sha1.rb +4 -4
  92. data/lib/net/ssh/transport/kex/diffie_hellman_group14_sha256.rb +11 -0
  93. data/lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb +21 -21
  94. data/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb +1 -2
  95. data/lib/net/ssh/transport/kex/ecdh_sha2_nistp256.rb +2 -2
  96. data/lib/net/ssh/transport/kex.rb +8 -6
  97. data/lib/net/ssh/transport/key_expander.rb +7 -8
  98. data/lib/net/ssh/transport/openssl.rb +51 -26
  99. data/lib/net/ssh/transport/openssl_cipher_extensions.rb +8 -0
  100. data/lib/net/ssh/transport/packet_stream.rb +46 -26
  101. data/lib/net/ssh/transport/server_version.rb +17 -16
  102. data/lib/net/ssh/transport/session.rb +9 -7
  103. data/lib/net/ssh/transport/state.rb +44 -44
  104. data/lib/net/ssh/verifiers/accept_new.rb +0 -2
  105. data/lib/net/ssh/verifiers/accept_new_or_local_tunnel.rb +1 -2
  106. data/lib/net/ssh/verifiers/always.rb +6 -4
  107. data/lib/net/ssh/verifiers/never.rb +0 -2
  108. data/lib/net/ssh/version.rb +2 -2
  109. data/lib/net/ssh.rb +15 -8
  110. data/net-ssh-public_cert.pem +19 -18
  111. data/net-ssh.gemspec +7 -4
  112. data/support/ssh_tunnel_bug.rb +3 -3
  113. data.tar.gz.sig +0 -0
  114. metadata +76 -29
  115. metadata.gz.sig +0 -0
  116. data/.travis.yml +0 -52
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: 6.1.0
4
+ version: 7.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamis Buck
@@ -12,26 +12,27 @@ bindir: exe
12
12
  cert_chain:
13
13
  - |
14
14
  -----BEGIN CERTIFICATE-----
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=
15
+ MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQsFADBBMQ8wDQYDVQQDDAZuZXRz
16
+ c2gxGTAXBgoJkiaJk/IsZAEZFglzb2x1dGlvdXMxEzARBgoJkiaJk/IsZAEZFgNj
17
+ b20wHhcNMjQwNDAxMDk1NjIxWhcNMjUwNDAxMDk1NjIxWjBBMQ8wDQYDVQQDDAZu
18
+ ZXRzc2gxGTAXBgoJkiaJk/IsZAEZFglzb2x1dGlvdXMxEzARBgoJkiaJk/IsZAEZ
19
+ FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGJ4TbZ9H+qZ08
20
+ pQfJhPJTHaDCyQvCsKTFrL5O9z3tllQ7B/zksMMM+qFBpNYu9HCcg4yBATacE/PB
21
+ qVVyUrpr6lbH/XwoN5ljXm+bdCfmnjZvTCL2FTE6o+bcnaF0IsJyC0Q2B1fbWdXN
22
+ 6Off1ZWoUk6We2BIM1bn6QJLxBpGyYhvOPXsYoqSuzDf2SJDDsWFZ8kV5ON13Ohm
23
+ JbBzn0oD8HF8FuYOewwsC0C1q4w7E5GtvHcQ5juweS7+RKsyDcVcVrLuNzoGRttS
24
+ KP4yMn+TzaXijyjRg7gECfJr3TGASaA4bQsILFGG5dAWcwO4OMrZedR7SHj/o0Kf
25
+ 3gL7P0axAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
26
+ BBQF8qLA7Z4zg0SJGtUbv3eoQ8tjIzAfBgNVHREEGDAWgRRuZXRzc2hAc29sdXRp
27
+ b3VzLmNvbTAfBgNVHRIEGDAWgRRuZXRzc2hAc29sdXRpb3VzLmNvbTANBgkqhkiG
28
+ 9w0BAQsFAAOCAQEAfY2WbsBKwRtBep4l+Y2/84H1BKH9UVOsFxqQzYkvM2LFDyup
29
+ UkjYf8nPSjg3mquhaiA5KSoSVUPpNDfQo+UvY3+mlxRs96ttWiUGwz27fy82rx1B
30
+ ZnfKjsWOntemNON6asOD0mtv0xsNBfOB2VNIKW/uqHsiPpa0OaVy5uENhX+5OFan
31
+ 2P1Uy+WcMiv38RlRkn4cdEIZUFupDgKFsguYlaJy473/wsae4exUgc5bvi3Splob
32
+ 1uE/LmB/qWBVSNW8e9KDtJynhDDZBlpESyQHFQCZj6UapzxlnC46LaDncPoAtJPc
33
+ MlWxJ8mKghIcyXc5y4cSyGypNG5BralqnvQUyg==
33
34
  -----END CERTIFICATE-----
34
- date: 2020-06-09 00:00:00.000000000 Z
35
+ date: 2024-10-02 00:00:00.000000000 Z
35
36
  dependencies:
36
37
  - !ruby/object:Gem::Dependency
37
38
  name: bcrypt_pbkdf
@@ -75,6 +76,34 @@ dependencies:
75
76
  - - ">="
76
77
  - !ruby/object:Gem::Version
77
78
  version: '0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: rbnacl
81
+ requirement: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - "~>"
84
+ - !ruby/object:Gem::Version
85
+ version: '7.1'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '7.1'
93
+ - !ruby/object:Gem::Dependency
94
+ name: base64
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ type: :development
101
+ prerelease: false
102
+ version_requirements: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
78
107
  - !ruby/object:Gem::Dependency
79
108
  name: bundler
80
109
  requirement: !ruby/object:Gem::Requirement
@@ -95,28 +124,28 @@ dependencies:
95
124
  requirements:
96
125
  - - "~>"
97
126
  - !ruby/object:Gem::Version
98
- version: '5.10'
127
+ version: '5.19'
99
128
  type: :development
100
129
  prerelease: false
101
130
  version_requirements: !ruby/object:Gem::Requirement
102
131
  requirements:
103
132
  - - "~>"
104
133
  - !ruby/object:Gem::Version
105
- version: '5.10'
134
+ version: '5.19'
106
135
  - !ruby/object:Gem::Dependency
107
136
  name: mocha
108
137
  requirement: !ruby/object:Gem::Requirement
109
138
  requirements:
110
139
  - - "~>"
111
140
  - !ruby/object:Gem::Version
112
- version: 1.11.2
141
+ version: 2.1.0
113
142
  type: :development
114
143
  prerelease: false
115
144
  version_requirements: !ruby/object:Gem::Requirement
116
145
  requirements:
117
146
  - - "~>"
118
147
  - !ruby/object:Gem::Version
119
- version: 1.11.2
148
+ version: 2.1.0
120
149
  - !ruby/object:Gem::Dependency
121
150
  name: rake
122
151
  requirement: !ruby/object:Gem::Requirement
@@ -137,14 +166,14 @@ dependencies:
137
166
  requirements:
138
167
  - - "~>"
139
168
  - !ruby/object:Gem::Version
140
- version: 0.74.0
169
+ version: 1.28.0
141
170
  type: :development
142
171
  prerelease: false
143
172
  version_requirements: !ruby/object:Gem::Requirement
144
173
  requirements:
145
174
  - - "~>"
146
175
  - !ruby/object:Gem::Version
147
- version: 0.74.0
176
+ version: 1.28.0
148
177
  description: 'Net::SSH: a pure-Ruby implementation of the SSH2 client protocol. It
149
178
  allows you to write programs that invoke and interact with processes on remote servers,
150
179
  via SSH2.'
@@ -156,20 +185,31 @@ extra_rdoc_files:
156
185
  - LICENSE.txt
157
186
  - README.md
158
187
  files:
188
+ - ".dockerignore"
189
+ - ".github/FUNDING.yml"
190
+ - ".github/config/rubocop_linter_action.yml"
191
+ - ".github/workflows/ci-with-docker.yml"
192
+ - ".github/workflows/ci.yml"
193
+ - ".github/workflows/rubocop.yml"
159
194
  - ".gitignore"
160
195
  - ".rubocop.yml"
161
196
  - ".rubocop_todo.yml"
162
- - ".travis.yml"
163
197
  - CHANGES.txt
198
+ - DEVELOPMENT.md
199
+ - Dockerfile
200
+ - Dockerfile.openssl3
164
201
  - Gemfile
165
202
  - Gemfile.noed25519
203
+ - Gemfile.norbnacl
166
204
  - ISSUE_TEMPLATE.md
167
205
  - LICENSE.txt
168
206
  - Manifest
169
207
  - README.md
170
208
  - Rakefile
209
+ - SECURITY.md
171
210
  - THANKS.txt
172
211
  - appveyor.yml
212
+ - docker-compose.yml
173
213
  - lib/net/ssh.rb
174
214
  - lib/net/ssh/authentication/agent.rb
175
215
  - lib/net/ssh/authentication/certificate.rb
@@ -218,10 +258,15 @@ files:
218
258
  - lib/net/ssh/test/remote_packet.rb
219
259
  - lib/net/ssh/test/script.rb
220
260
  - lib/net/ssh/test/socket.rb
261
+ - lib/net/ssh/transport/aes128_gcm.rb
262
+ - lib/net/ssh/transport/aes256_gcm.rb
221
263
  - lib/net/ssh/transport/algorithms.rb
264
+ - lib/net/ssh/transport/chacha20_poly1305_cipher.rb
265
+ - lib/net/ssh/transport/chacha20_poly1305_cipher_loader.rb
222
266
  - lib/net/ssh/transport/cipher_factory.rb
223
267
  - lib/net/ssh/transport/constants.rb
224
268
  - lib/net/ssh/transport/ctr.rb
269
+ - lib/net/ssh/transport/gcm_cipher.rb
225
270
  - lib/net/ssh/transport/hmac.rb
226
271
  - lib/net/ssh/transport/hmac/abstract.rb
227
272
  - lib/net/ssh/transport/hmac/md5.rb
@@ -243,6 +288,7 @@ files:
243
288
  - lib/net/ssh/transport/kex/curve25519_sha256.rb
244
289
  - lib/net/ssh/transport/kex/curve25519_sha256_loader.rb
245
290
  - lib/net/ssh/transport/kex/diffie_hellman_group14_sha1.rb
291
+ - lib/net/ssh/transport/kex/diffie_hellman_group14_sha256.rb
246
292
  - lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb
247
293
  - lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb
248
294
  - lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha256.rb
@@ -251,6 +297,7 @@ files:
251
297
  - lib/net/ssh/transport/kex/ecdh_sha2_nistp521.rb
252
298
  - lib/net/ssh/transport/key_expander.rb
253
299
  - lib/net/ssh/transport/openssl.rb
300
+ - lib/net/ssh/transport/openssl_cipher_extensions.rb
254
301
  - lib/net/ssh/transport/packet_stream.rb
255
302
  - lib/net/ssh/transport/server_version.rb
256
303
  - lib/net/ssh/transport/session.rb
@@ -276,14 +323,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
276
323
  requirements:
277
324
  - - ">="
278
325
  - !ruby/object:Gem::Version
279
- version: '2.3'
326
+ version: '2.6'
280
327
  required_rubygems_version: !ruby/object:Gem::Requirement
281
328
  requirements:
282
329
  - - ">="
283
330
  - !ruby/object:Gem::Version
284
331
  version: '0'
285
332
  requirements: []
286
- rubygems_version: 3.0.3
333
+ rubygems_version: 3.3.3
287
334
  signing_key:
288
335
  specification_version: 4
289
336
  summary: 'Net::SSH: a pure-Ruby implementation of the SSH2 client protocol.'
metadata.gz.sig CHANGED
Binary file
data/.travis.yml DELETED
@@ -1,52 +0,0 @@
1
- language: ruby
2
- sudo: true
3
- dist: trusty
4
-
5
- addon:
6
- hosts:
7
- gateway.netssh
8
-
9
- rvm:
10
- - 2.3.8
11
- - 2.4.8
12
- - 2.5.7
13
- - 2.6.5
14
- - 2.7.0
15
- - jruby-9.2.11.1
16
- - rbx-3.107
17
- - ruby-head
18
- env:
19
- NET_SSH_RUN_INTEGRATION_TESTS=1
20
-
21
- matrix:
22
- exclude:
23
- - rvm: rbx-3.107
24
- include:
25
- - rvm: rbx-3.107
26
- env: NET_SSH_RUN_INTEGRATION_TESTS=
27
- - rvm: jruby-9.2.11.1
28
- env: JRUBY_OPTS='--client -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -Xcext.enabled=false -J-Xss2m -Xcompile.invokedynamic=false' NET_SSH_RUN_INTEGRATION_TESTS=
29
- fast_finish: true
30
- allow_failures:
31
- - rvm: rbx-3.107
32
- - rvm: jruby-9.2.11.1
33
- - rvm: ruby-head
34
-
35
- install:
36
- - export JRUBY_OPTS='--client -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -Xcext.enabled=false -J-Xss2m -Xcompile.invokedynamic=false'
37
- - sudo pip install ansible urllib3 pyOpenSSL ndg-httpsclient pyasn1
38
- - gem install bundler -v "= 1.17"
39
- - gem list bundler
40
- - bundle _1.17_ install
41
- - bundle _1.17_ -v
42
- - BUNDLE_GEMFILE=./Gemfile.noed25519 bundle _1.17_ install
43
- - sudo ansible-galaxy install rvm.ruby
44
- - sudo chown -R travis:travis /home/travis/.ansible
45
- - 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'
46
-
47
- script:
48
- - ssh -V
49
- - bundle _1.17_ exec rake test
50
- - BUNDLE_GEMFILE=./Gemfile.noed25519 bundle _1.17_ exec rake test
51
- - bundle _1.17_ exec rake test_test
52
- - bundle _1.17_ exec rubocop