net-ssh 2.7.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 (199) hide show
  1. checksums.yaml +7 -0
  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 +15 -0
  10. data/.rubocop.yml +22 -0
  11. data/.rubocop_todo.yml +1081 -0
  12. data/CHANGES.txt +387 -0
  13. data/DEVELOPMENT.md +23 -0
  14. data/Dockerfile +29 -0
  15. data/Dockerfile.openssl3 +17 -0
  16. data/Gemfile +13 -0
  17. data/Gemfile.noed25519 +12 -0
  18. data/Gemfile.norbnacl +12 -0
  19. data/ISSUE_TEMPLATE.md +30 -0
  20. data/Manifest +4 -5
  21. data/README.md +303 -0
  22. data/Rakefile +174 -40
  23. data/SECURITY.md +4 -0
  24. data/THANKS.txt +25 -0
  25. data/appveyor.yml +58 -0
  26. data/docker-compose.yml +25 -0
  27. data/lib/net/ssh/authentication/agent.rb +279 -18
  28. data/lib/net/ssh/authentication/certificate.rb +183 -0
  29. data/lib/net/ssh/authentication/constants.rb +17 -15
  30. data/lib/net/ssh/authentication/ed25519.rb +184 -0
  31. data/lib/net/ssh/authentication/ed25519_loader.rb +31 -0
  32. data/lib/net/ssh/authentication/key_manager.rb +125 -54
  33. data/lib/net/ssh/authentication/methods/abstract.rb +67 -48
  34. data/lib/net/ssh/authentication/methods/hostbased.rb +34 -37
  35. data/lib/net/ssh/authentication/methods/keyboard_interactive.rb +19 -12
  36. data/lib/net/ssh/authentication/methods/none.rb +16 -19
  37. data/lib/net/ssh/authentication/methods/password.rb +56 -19
  38. data/lib/net/ssh/authentication/methods/publickey.rb +96 -55
  39. data/lib/net/ssh/authentication/pageant.rb +483 -246
  40. data/lib/net/ssh/authentication/pub_key_fingerprint.rb +43 -0
  41. data/lib/net/ssh/authentication/session.rb +138 -120
  42. data/lib/net/ssh/buffer.rb +399 -300
  43. data/lib/net/ssh/buffered_io.rb +154 -150
  44. data/lib/net/ssh/config.rb +361 -166
  45. data/lib/net/ssh/connection/channel.rb +640 -596
  46. data/lib/net/ssh/connection/constants.rb +29 -29
  47. data/lib/net/ssh/connection/event_loop.rb +123 -0
  48. data/lib/net/ssh/connection/keepalive.rb +59 -0
  49. data/lib/net/ssh/connection/session.rb +628 -548
  50. data/lib/net/ssh/connection/term.rb +125 -123
  51. data/lib/net/ssh/errors.rb +101 -95
  52. data/lib/net/ssh/key_factory.rb +198 -100
  53. data/lib/net/ssh/known_hosts.rb +221 -98
  54. data/lib/net/ssh/loggable.rb +50 -49
  55. data/lib/net/ssh/packet.rb +83 -79
  56. data/lib/net/ssh/prompt.rb +50 -81
  57. data/lib/net/ssh/proxy/command.rb +108 -60
  58. data/lib/net/ssh/proxy/errors.rb +12 -10
  59. data/lib/net/ssh/proxy/http.rb +82 -78
  60. data/lib/net/ssh/proxy/https.rb +50 -0
  61. data/lib/net/ssh/proxy/jump.rb +54 -0
  62. data/lib/net/ssh/proxy/socks4.rb +5 -8
  63. data/lib/net/ssh/proxy/socks5.rb +18 -20
  64. data/lib/net/ssh/service/forward.rb +383 -255
  65. data/lib/net/ssh/test/channel.rb +145 -136
  66. data/lib/net/ssh/test/extensions.rb +131 -110
  67. data/lib/net/ssh/test/kex.rb +34 -32
  68. data/lib/net/ssh/test/local_packet.rb +46 -44
  69. data/lib/net/ssh/test/packet.rb +89 -70
  70. data/lib/net/ssh/test/remote_packet.rb +32 -30
  71. data/lib/net/ssh/test/script.rb +156 -142
  72. data/lib/net/ssh/test/socket.rb +49 -48
  73. data/lib/net/ssh/test.rb +82 -77
  74. data/lib/net/ssh/transport/aes128_gcm.rb +40 -0
  75. data/lib/net/ssh/transport/aes256_gcm.rb +40 -0
  76. data/lib/net/ssh/transport/algorithms.rb +472 -348
  77. data/lib/net/ssh/transport/chacha20_poly1305_cipher.rb +117 -0
  78. data/lib/net/ssh/transport/chacha20_poly1305_cipher_loader.rb +17 -0
  79. data/lib/net/ssh/transport/cipher_factory.rb +124 -100
  80. data/lib/net/ssh/transport/constants.rb +32 -24
  81. data/lib/net/ssh/transport/ctr.rb +42 -22
  82. data/lib/net/ssh/transport/gcm_cipher.rb +207 -0
  83. data/lib/net/ssh/transport/hmac/abstract.rb +97 -63
  84. data/lib/net/ssh/transport/hmac/md5.rb +0 -2
  85. data/lib/net/ssh/transport/hmac/md5_96.rb +0 -2
  86. data/lib/net/ssh/transport/hmac/none.rb +0 -2
  87. data/lib/net/ssh/transport/hmac/ripemd160.rb +0 -2
  88. data/lib/net/ssh/transport/hmac/sha1.rb +0 -2
  89. data/lib/net/ssh/transport/hmac/sha1_96.rb +0 -2
  90. data/lib/net/ssh/transport/hmac/sha2_256.rb +7 -11
  91. data/lib/net/ssh/transport/hmac/sha2_256_96.rb +4 -8
  92. data/lib/net/ssh/transport/hmac/sha2_256_etm.rb +12 -0
  93. data/lib/net/ssh/transport/hmac/sha2_512.rb +6 -9
  94. data/lib/net/ssh/transport/hmac/sha2_512_96.rb +4 -8
  95. data/lib/net/ssh/transport/hmac/sha2_512_etm.rb +12 -0
  96. data/lib/net/ssh/transport/hmac.rb +14 -12
  97. data/lib/net/ssh/transport/identity_cipher.rb +54 -44
  98. data/lib/net/ssh/transport/kex/abstract.rb +130 -0
  99. data/lib/net/ssh/transport/kex/abstract5656.rb +72 -0
  100. data/lib/net/ssh/transport/kex/curve25519_sha256.rb +39 -0
  101. data/lib/net/ssh/transport/kex/curve25519_sha256_loader.rb +30 -0
  102. data/lib/net/ssh/transport/kex/diffie_hellman_group14_sha1.rb +33 -40
  103. data/lib/net/ssh/transport/kex/diffie_hellman_group14_sha256.rb +11 -0
  104. data/lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb +119 -213
  105. data/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb +53 -61
  106. data/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha256.rb +5 -9
  107. data/lib/net/ssh/transport/kex/ecdh_sha2_nistp256.rb +36 -90
  108. data/lib/net/ssh/transport/kex/ecdh_sha2_nistp384.rb +18 -10
  109. data/lib/net/ssh/transport/kex/ecdh_sha2_nistp521.rb +18 -10
  110. data/lib/net/ssh/transport/kex.rb +15 -12
  111. data/lib/net/ssh/transport/key_expander.rb +24 -20
  112. data/lib/net/ssh/transport/openssl.rb +161 -124
  113. data/lib/net/ssh/transport/openssl_cipher_extensions.rb +8 -0
  114. data/lib/net/ssh/transport/packet_stream.rb +246 -183
  115. data/lib/net/ssh/transport/server_version.rb +57 -51
  116. data/lib/net/ssh/transport/session.rb +307 -235
  117. data/lib/net/ssh/transport/state.rb +178 -176
  118. data/lib/net/ssh/verifiers/accept_new.rb +33 -0
  119. data/lib/net/ssh/verifiers/accept_new_or_local_tunnel.rb +33 -0
  120. data/lib/net/ssh/verifiers/always.rb +58 -0
  121. data/lib/net/ssh/verifiers/never.rb +19 -0
  122. data/lib/net/ssh/version.rb +57 -51
  123. data/lib/net/ssh.rb +140 -40
  124. data/net-ssh-public_cert.pem +21 -0
  125. data/net-ssh.gemspec +39 -184
  126. data/support/ssh_tunnel_bug.rb +5 -5
  127. data.tar.gz.sig +0 -0
  128. metadata +205 -99
  129. metadata.gz.sig +0 -0
  130. data/README.rdoc +0 -219
  131. data/Rudyfile +0 -96
  132. data/gem-public_cert.pem +0 -20
  133. data/lib/net/ssh/authentication/agent/java_pageant.rb +0 -85
  134. data/lib/net/ssh/authentication/agent/socket.rb +0 -170
  135. data/lib/net/ssh/ruby_compat.rb +0 -51
  136. data/lib/net/ssh/verifiers/lenient.rb +0 -30
  137. data/lib/net/ssh/verifiers/null.rb +0 -12
  138. data/lib/net/ssh/verifiers/secure.rb +0 -54
  139. data/lib/net/ssh/verifiers/strict.rb +0 -24
  140. data/setup.rb +0 -1585
  141. data/support/arcfour_check.rb +0 -20
  142. data/test/README.txt +0 -47
  143. data/test/authentication/methods/common.rb +0 -28
  144. data/test/authentication/methods/test_abstract.rb +0 -51
  145. data/test/authentication/methods/test_hostbased.rb +0 -114
  146. data/test/authentication/methods/test_keyboard_interactive.rb +0 -100
  147. data/test/authentication/methods/test_none.rb +0 -41
  148. data/test/authentication/methods/test_password.rb +0 -52
  149. data/test/authentication/methods/test_publickey.rb +0 -148
  150. data/test/authentication/test_agent.rb +0 -205
  151. data/test/authentication/test_key_manager.rb +0 -218
  152. data/test/authentication/test_session.rb +0 -108
  153. data/test/common.rb +0 -108
  154. data/test/configs/eqsign +0 -3
  155. data/test/configs/exact_match +0 -8
  156. data/test/configs/host_plus +0 -10
  157. data/test/configs/multihost +0 -4
  158. data/test/configs/nohost +0 -19
  159. data/test/configs/numeric_host +0 -4
  160. data/test/configs/send_env +0 -2
  161. data/test/configs/substitutes +0 -8
  162. data/test/configs/wild_cards +0 -14
  163. data/test/connection/test_channel.rb +0 -467
  164. data/test/connection/test_session.rb +0 -526
  165. data/test/known_hosts/github +0 -1
  166. data/test/manual/test_forward.rb +0 -223
  167. data/test/start/test_options.rb +0 -36
  168. data/test/start/test_transport.rb +0 -28
  169. data/test/test_all.rb +0 -11
  170. data/test/test_buffer.rb +0 -433
  171. data/test/test_buffered_io.rb +0 -63
  172. data/test/test_config.rb +0 -151
  173. data/test/test_key_factory.rb +0 -173
  174. data/test/test_known_hosts.rb +0 -13
  175. data/test/transport/hmac/test_md5.rb +0 -41
  176. data/test/transport/hmac/test_md5_96.rb +0 -27
  177. data/test/transport/hmac/test_none.rb +0 -34
  178. data/test/transport/hmac/test_ripemd160.rb +0 -36
  179. data/test/transport/hmac/test_sha1.rb +0 -36
  180. data/test/transport/hmac/test_sha1_96.rb +0 -27
  181. data/test/transport/hmac/test_sha2_256.rb +0 -37
  182. data/test/transport/hmac/test_sha2_256_96.rb +0 -27
  183. data/test/transport/hmac/test_sha2_512.rb +0 -37
  184. data/test/transport/hmac/test_sha2_512_96.rb +0 -27
  185. data/test/transport/kex/test_diffie_hellman_group14_sha1.rb +0 -13
  186. data/test/transport/kex/test_diffie_hellman_group1_sha1.rb +0 -146
  187. data/test/transport/kex/test_diffie_hellman_group_exchange_sha1.rb +0 -92
  188. data/test/transport/kex/test_diffie_hellman_group_exchange_sha256.rb +0 -34
  189. data/test/transport/kex/test_ecdh_sha2_nistp256.rb +0 -161
  190. data/test/transport/kex/test_ecdh_sha2_nistp384.rb +0 -38
  191. data/test/transport/kex/test_ecdh_sha2_nistp521.rb +0 -38
  192. data/test/transport/test_algorithms.rb +0 -330
  193. data/test/transport/test_cipher_factory.rb +0 -443
  194. data/test/transport/test_hmac.rb +0 -34
  195. data/test/transport/test_identity_cipher.rb +0 -40
  196. data/test/transport/test_packet_stream.rb +0 -1755
  197. data/test/transport/test_server_version.rb +0 -78
  198. data/test/transport/test_session.rb +0 -319
  199. data/test/transport/test_state.rb +0 -181
metadata CHANGED
@@ -1,72 +1,221 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-ssh
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.0
5
- prerelease:
4
+ version: 7.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jamis Buck
9
8
  - Delano Mandelbaum
9
+ - Miklós Fazekas
10
10
  autorequire:
11
- bindir: bin
12
- cert_chain: []
13
- date: 2013-09-11 00:00:00.000000000 Z
11
+ bindir: exe
12
+ cert_chain:
13
+ - |
14
+ -----BEGIN CERTIFICATE-----
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==
34
+ -----END CERTIFICATE-----
35
+ date: 2024-10-02 00:00:00.000000000 Z
14
36
  dependencies:
15
37
  - !ruby/object:Gem::Dependency
16
- name: test-unit
38
+ name: bcrypt_pbkdf
17
39
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
40
  requirements:
20
- - - ! '>='
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '1.0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '1.0'
51
+ - !ruby/object:Gem::Dependency
52
+ name: ed25519
53
+ requirement: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '1.2'
58
+ type: :development
59
+ prerelease: false
60
+ version_requirements: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - "~>"
63
+ - !ruby/object:Gem::Version
64
+ version: '1.2'
65
+ - !ruby/object:Gem::Dependency
66
+ name: x25519
67
+ requirement: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
21
70
  - !ruby/object:Gem::Version
22
71
  version: '0'
23
72
  type: :development
24
73
  prerelease: false
25
74
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
75
  requirements:
28
- - - ! '>='
76
+ - - ">="
29
77
  - !ruby/object:Gem::Version
30
78
  version: '0'
31
79
  - !ruby/object:Gem::Dependency
32
- name: mocha
80
+ name: rbnacl
33
81
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
82
  requirements:
36
- - - ! '>='
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
+ - - ">="
37
98
  - !ruby/object:Gem::Version
38
99
  version: '0'
39
100
  type: :development
40
101
  prerelease: false
41
102
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
103
  requirements:
44
- - - ! '>='
104
+ - - ">="
45
105
  - !ruby/object:Gem::Version
46
106
  version: '0'
47
- description: ! 'Net::SSH: a pure-Ruby implementation of the SSH2 client protocol.
48
- It allows you to write programs that invoke and interact with processes on remote
49
- servers, via SSH2.'
50
- email: net-ssh@solutious.com
107
+ - !ruby/object:Gem::Dependency
108
+ name: bundler
109
+ requirement: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: '1.17'
114
+ type: :development
115
+ prerelease: false
116
+ version_requirements: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: '1.17'
121
+ - !ruby/object:Gem::Dependency
122
+ name: minitest
123
+ requirement: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: '5.19'
128
+ type: :development
129
+ prerelease: false
130
+ version_requirements: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: '5.19'
135
+ - !ruby/object:Gem::Dependency
136
+ name: mocha
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: 2.1.0
142
+ type: :development
143
+ prerelease: false
144
+ version_requirements: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: 2.1.0
149
+ - !ruby/object:Gem::Dependency
150
+ name: rake
151
+ requirement: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: '12.0'
156
+ type: :development
157
+ prerelease: false
158
+ version_requirements: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - "~>"
161
+ - !ruby/object:Gem::Version
162
+ version: '12.0'
163
+ - !ruby/object:Gem::Dependency
164
+ name: rubocop
165
+ requirement: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: 1.28.0
170
+ type: :development
171
+ prerelease: false
172
+ version_requirements: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - "~>"
175
+ - !ruby/object:Gem::Version
176
+ version: 1.28.0
177
+ description: 'Net::SSH: a pure-Ruby implementation of the SSH2 client protocol. It
178
+ allows you to write programs that invoke and interact with processes on remote servers,
179
+ via SSH2.'
180
+ email:
181
+ - net-ssh@solutious.com
51
182
  executables: []
52
183
  extensions: []
53
184
  extra_rdoc_files:
54
185
  - LICENSE.txt
55
- - README.rdoc
186
+ - README.md
56
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"
194
+ - ".gitignore"
195
+ - ".rubocop.yml"
196
+ - ".rubocop_todo.yml"
57
197
  - CHANGES.txt
198
+ - DEVELOPMENT.md
199
+ - Dockerfile
200
+ - Dockerfile.openssl3
201
+ - Gemfile
202
+ - Gemfile.noed25519
203
+ - Gemfile.norbnacl
204
+ - ISSUE_TEMPLATE.md
58
205
  - LICENSE.txt
59
206
  - Manifest
60
- - README.rdoc
207
+ - README.md
61
208
  - Rakefile
62
- - Rudyfile
209
+ - SECURITY.md
63
210
  - THANKS.txt
64
- - gem-public_cert.pem
211
+ - appveyor.yml
212
+ - docker-compose.yml
65
213
  - lib/net/ssh.rb
66
214
  - lib/net/ssh/authentication/agent.rb
67
- - lib/net/ssh/authentication/agent/java_pageant.rb
68
- - lib/net/ssh/authentication/agent/socket.rb
215
+ - lib/net/ssh/authentication/certificate.rb
69
216
  - lib/net/ssh/authentication/constants.rb
217
+ - lib/net/ssh/authentication/ed25519.rb
218
+ - lib/net/ssh/authentication/ed25519_loader.rb
70
219
  - lib/net/ssh/authentication/key_manager.rb
71
220
  - lib/net/ssh/authentication/methods/abstract.rb
72
221
  - lib/net/ssh/authentication/methods/hostbased.rb
@@ -75,12 +224,15 @@ files:
75
224
  - lib/net/ssh/authentication/methods/password.rb
76
225
  - lib/net/ssh/authentication/methods/publickey.rb
77
226
  - lib/net/ssh/authentication/pageant.rb
227
+ - lib/net/ssh/authentication/pub_key_fingerprint.rb
78
228
  - lib/net/ssh/authentication/session.rb
79
229
  - lib/net/ssh/buffer.rb
80
230
  - lib/net/ssh/buffered_io.rb
81
231
  - lib/net/ssh/config.rb
82
232
  - lib/net/ssh/connection/channel.rb
83
233
  - lib/net/ssh/connection/constants.rb
234
+ - lib/net/ssh/connection/event_loop.rb
235
+ - lib/net/ssh/connection/keepalive.rb
84
236
  - lib/net/ssh/connection/session.rb
85
237
  - lib/net/ssh/connection/term.rb
86
238
  - lib/net/ssh/errors.rb
@@ -92,9 +244,10 @@ files:
92
244
  - lib/net/ssh/proxy/command.rb
93
245
  - lib/net/ssh/proxy/errors.rb
94
246
  - lib/net/ssh/proxy/http.rb
247
+ - lib/net/ssh/proxy/https.rb
248
+ - lib/net/ssh/proxy/jump.rb
95
249
  - lib/net/ssh/proxy/socks4.rb
96
250
  - lib/net/ssh/proxy/socks5.rb
97
- - lib/net/ssh/ruby_compat.rb
98
251
  - lib/net/ssh/service/forward.rb
99
252
  - lib/net/ssh/test.rb
100
253
  - lib/net/ssh/test/channel.rb
@@ -105,10 +258,15 @@ files:
105
258
  - lib/net/ssh/test/remote_packet.rb
106
259
  - lib/net/ssh/test/script.rb
107
260
  - lib/net/ssh/test/socket.rb
261
+ - lib/net/ssh/transport/aes128_gcm.rb
262
+ - lib/net/ssh/transport/aes256_gcm.rb
108
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
109
266
  - lib/net/ssh/transport/cipher_factory.rb
110
267
  - lib/net/ssh/transport/constants.rb
111
268
  - lib/net/ssh/transport/ctr.rb
269
+ - lib/net/ssh/transport/gcm_cipher.rb
112
270
  - lib/net/ssh/transport/hmac.rb
113
271
  - lib/net/ssh/transport/hmac/abstract.rb
114
272
  - lib/net/ssh/transport/hmac/md5.rb
@@ -119,11 +277,18 @@ files:
119
277
  - lib/net/ssh/transport/hmac/sha1_96.rb
120
278
  - lib/net/ssh/transport/hmac/sha2_256.rb
121
279
  - lib/net/ssh/transport/hmac/sha2_256_96.rb
280
+ - lib/net/ssh/transport/hmac/sha2_256_etm.rb
122
281
  - lib/net/ssh/transport/hmac/sha2_512.rb
123
282
  - lib/net/ssh/transport/hmac/sha2_512_96.rb
283
+ - lib/net/ssh/transport/hmac/sha2_512_etm.rb
124
284
  - lib/net/ssh/transport/identity_cipher.rb
125
285
  - lib/net/ssh/transport/kex.rb
286
+ - lib/net/ssh/transport/kex/abstract.rb
287
+ - lib/net/ssh/transport/kex/abstract5656.rb
288
+ - lib/net/ssh/transport/kex/curve25519_sha256.rb
289
+ - lib/net/ssh/transport/kex/curve25519_sha256_loader.rb
126
290
  - lib/net/ssh/transport/kex/diffie_hellman_group14_sha1.rb
291
+ - lib/net/ssh/transport/kex/diffie_hellman_group14_sha256.rb
127
292
  - lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb
128
293
  - lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb
129
294
  - lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha256.rb
@@ -132,100 +297,41 @@ files:
132
297
  - lib/net/ssh/transport/kex/ecdh_sha2_nistp521.rb
133
298
  - lib/net/ssh/transport/key_expander.rb
134
299
  - lib/net/ssh/transport/openssl.rb
300
+ - lib/net/ssh/transport/openssl_cipher_extensions.rb
135
301
  - lib/net/ssh/transport/packet_stream.rb
136
302
  - lib/net/ssh/transport/server_version.rb
137
303
  - lib/net/ssh/transport/session.rb
138
304
  - lib/net/ssh/transport/state.rb
139
- - lib/net/ssh/verifiers/lenient.rb
140
- - lib/net/ssh/verifiers/null.rb
141
- - lib/net/ssh/verifiers/secure.rb
142
- - lib/net/ssh/verifiers/strict.rb
305
+ - lib/net/ssh/verifiers/accept_new.rb
306
+ - lib/net/ssh/verifiers/accept_new_or_local_tunnel.rb
307
+ - lib/net/ssh/verifiers/always.rb
308
+ - lib/net/ssh/verifiers/never.rb
143
309
  - lib/net/ssh/version.rb
310
+ - net-ssh-public_cert.pem
144
311
  - net-ssh.gemspec
145
- - setup.rb
146
- - support/arcfour_check.rb
147
312
  - support/ssh_tunnel_bug.rb
148
- - test/README.txt
149
- - test/authentication/methods/common.rb
150
- - test/authentication/methods/test_abstract.rb
151
- - test/authentication/methods/test_hostbased.rb
152
- - test/authentication/methods/test_keyboard_interactive.rb
153
- - test/authentication/methods/test_none.rb
154
- - test/authentication/methods/test_password.rb
155
- - test/authentication/methods/test_publickey.rb
156
- - test/authentication/test_agent.rb
157
- - test/authentication/test_key_manager.rb
158
- - test/authentication/test_session.rb
159
- - test/common.rb
160
- - test/configs/eqsign
161
- - test/configs/exact_match
162
- - test/configs/host_plus
163
- - test/configs/multihost
164
- - test/configs/nohost
165
- - test/configs/numeric_host
166
- - test/configs/send_env
167
- - test/configs/substitutes
168
- - test/configs/wild_cards
169
- - test/connection/test_channel.rb
170
- - test/connection/test_session.rb
171
- - test/known_hosts/github
172
- - test/manual/test_forward.rb
173
- - test/start/test_options.rb
174
- - test/start/test_transport.rb
175
- - test/test_all.rb
176
- - test/test_buffer.rb
177
- - test/test_buffered_io.rb
178
- - test/test_config.rb
179
- - test/test_key_factory.rb
180
- - test/test_known_hosts.rb
181
- - test/transport/hmac/test_md5.rb
182
- - test/transport/hmac/test_md5_96.rb
183
- - test/transport/hmac/test_none.rb
184
- - test/transport/hmac/test_ripemd160.rb
185
- - test/transport/hmac/test_sha1.rb
186
- - test/transport/hmac/test_sha1_96.rb
187
- - test/transport/hmac/test_sha2_256.rb
188
- - test/transport/hmac/test_sha2_256_96.rb
189
- - test/transport/hmac/test_sha2_512.rb
190
- - test/transport/hmac/test_sha2_512_96.rb
191
- - test/transport/kex/test_diffie_hellman_group14_sha1.rb
192
- - test/transport/kex/test_diffie_hellman_group1_sha1.rb
193
- - test/transport/kex/test_diffie_hellman_group_exchange_sha1.rb
194
- - test/transport/kex/test_diffie_hellman_group_exchange_sha256.rb
195
- - test/transport/kex/test_ecdh_sha2_nistp256.rb
196
- - test/transport/kex/test_ecdh_sha2_nistp384.rb
197
- - test/transport/kex/test_ecdh_sha2_nistp521.rb
198
- - test/transport/test_algorithms.rb
199
- - test/transport/test_cipher_factory.rb
200
- - test/transport/test_hmac.rb
201
- - test/transport/test_identity_cipher.rb
202
- - test/transport/test_packet_stream.rb
203
- - test/transport/test_server_version.rb
204
- - test/transport/test_session.rb
205
- - test/transport/test_state.rb
206
313
  homepage: https://github.com/net-ssh/net-ssh
207
314
  licenses:
208
315
  - MIT
316
+ metadata:
317
+ changelog_uri: https://github.com/net-ssh/net-ssh/blob/master/CHANGES.txt
209
318
  post_install_message:
210
319
  rdoc_options: []
211
320
  require_paths:
212
321
  - lib
213
322
  required_ruby_version: !ruby/object:Gem::Requirement
214
- none: false
215
323
  requirements:
216
- - - ! '>='
324
+ - - ">="
217
325
  - !ruby/object:Gem::Version
218
- version: '0'
326
+ version: '2.6'
219
327
  required_rubygems_version: !ruby/object:Gem::Requirement
220
- none: false
221
328
  requirements:
222
- - - ! '>='
329
+ - - ">="
223
330
  - !ruby/object:Gem::Version
224
331
  version: '0'
225
332
  requirements: []
226
- rubyforge_project: net-ssh
227
- rubygems_version: 1.8.25
333
+ rubygems_version: 3.3.3
228
334
  signing_key:
229
- specification_version: 3
230
- summary: ! 'Net::SSH: a pure-Ruby implementation of the SSH2 client protocol.'
335
+ specification_version: 4
336
+ summary: 'Net::SSH: a pure-Ruby implementation of the SSH2 client protocol.'
231
337
  test_files: []
metadata.gz.sig ADDED
Binary file
data/README.rdoc DELETED
@@ -1,219 +0,0 @@
1
- = Net::SSH 2.x
2
-
3
- <em><b>Please note: this project is in maintenance mode. It is not under active development but pull requests are very much welcome. Just be sure to include tests! -- delano</b></em>
4
-
5
-
6
- * Docs: http://net-ssh.github.com/net-ssh
7
- * Issues: https://github.com/net-ssh/net-ssh/issues
8
- * Codes: https://github.com/net-ssh/net-ssh
9
- * Email: net-ssh@solutious.com
10
-
11
-
12
- <em>As of v2.6.4, all gem releases are signed. See INSTALL.</em>
13
-
14
-
15
- == DESCRIPTION:
16
-
17
- Net::SSH is 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.
18
-
19
- == FEATURES:
20
-
21
- * Execute processes on remote servers and capture their output
22
- * Run multiple processes in parallel over a single SSH connection
23
- * Support for SSH subsystems
24
- * Forward local and remote ports via an SSH connection
25
-
26
- == SYNOPSIS:
27
-
28
- In a nutshell:
29
-
30
- require 'net/ssh'
31
-
32
- Net::SSH.start('host', 'user', :password => "password") do |ssh|
33
- # capture all stderr and stdout output from a remote process
34
- output = ssh.exec!("hostname")
35
-
36
- # capture only stdout matching a particular pattern
37
- stdout = ""
38
- ssh.exec!("ls -l /home/jamis") do |channel, stream, data|
39
- stdout << data if stream == :stdout
40
- end
41
- puts stdout
42
-
43
- # run multiple processes in parallel to completion
44
- ssh.exec "sed ..."
45
- ssh.exec "awk ..."
46
- ssh.exec "rm -rf ..."
47
- ssh.loop
48
-
49
- # open a new channel and configure a minimal set of callbacks, then run
50
- # the event loop until the channel finishes (closes)
51
- channel = ssh.open_channel do |ch|
52
- ch.exec "/usr/local/bin/ruby /path/to/file.rb" do |ch, success|
53
- raise "could not execute command" unless success
54
-
55
- # "on_data" is called when the process writes something to stdout
56
- ch.on_data do |c, data|
57
- $stdout.print data
58
- end
59
-
60
- # "on_extended_data" is called when the process writes something to stderr
61
- ch.on_extended_data do |c, type, data|
62
- $stderr.print data
63
- end
64
-
65
- ch.on_close { puts "done!" }
66
- end
67
- end
68
-
69
- channel.wait
70
-
71
- # forward connections on local port 1234 to port 80 of www.capify.org
72
- ssh.forward.local(1234, "www.capify.org", 80)
73
- ssh.loop { true }
74
- end
75
-
76
- See Net::SSH for more documentation, and links to further information.
77
-
78
- == REQUIREMENTS:
79
-
80
- The only requirement you might be missing is the OpenSSL bindings for Ruby. These are built by default on most platforms, but you can verify that they're built and installed on your system by running the following command line:
81
-
82
- ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
83
-
84
- If that spits out something like "OpenSSL 0.9.8g 19 Oct 2007", then you're set. If you get an error, then you'll need to see about rebuilding ruby with OpenSSL support, or (if your platform supports it) installing the OpenSSL bindings separately.
85
-
86
- Additionally: if you are going to be having Net::SSH prompt you for things like passwords or certificate passphrases, you'll want to have either the Highline (recommended) or Termios (unix systems only) gem installed, so that the passwords don't echo in clear text.
87
-
88
- Lastly, if you want to run the tests or use any of the Rake tasks, you'll need:
89
-
90
- * Echoe (for the Rakefile)
91
- * Mocha (for the tests)
92
-
93
-
94
- == INSTALL:
95
-
96
- * gem install net-ssh (might need sudo privileges)
97
-
98
- NOTE: If you are running on jruby you need to install jruby-pageant manually (gemspec doesn't allow for platform specific dependencies).
99
-
100
- However, in order to be sure the code you're installing hasn't been tampered with, it's recommended that you verify the signature[http://docs.rubygems.org/read/chapter/21]. To do this, you need to add my public key as a trusted certificate (you only need to do this once):
101
-
102
- # Add the public key as a trusted certificate
103
- # (You only need to do this once)
104
- $ curl -O https://raw.github.com/net-ssh/net-ssh/master/gem-public_cert.pem
105
- $ gem cert --add gem-public_cert.pem
106
-
107
- Then, when install the gem, do so with high security:
108
-
109
- $ gem install net-ssh -P HighSecurity
110
-
111
- If you don't add the public key, you'll see an error like "Couldn't verify data signature". If you're still having trouble let me know and I'll give you a hand.
112
-
113
- == RUBY 1.8 SUPPORT
114
-
115
- net-ssh supports Ruby 1.8.x up until the 2.5.1 release. Later releases will work but the test suite is no longer guaranteed to pass all tests.
116
-
117
- == JRUBY 1.6
118
-
119
- There is an issue with jruby-openssl that produces the following error in jruby 1.6:
120
-
121
- <ArgumentError> wrong number of arguments (2 for 1)
122
- /home/offers/tracking/shared/bundle/jruby/1.8/gems/net-ssh-2.6.0/lib/net/ssh/key_factory.rb:77:in `load_data_private_key'
123
-
124
- You can downgrade jruby-openssl to version 0.7.4 (before they added the PKey.read method) to resolve it or upgrade jruby to 1.7. See issue #61 for more info: https://github.com/net-ssh/net-ssh/issues/61.
125
-
126
-
127
- == ARCFOUR SUPPORT:
128
-
129
- from Karl Varga:
130
-
131
- Ruby's OpenSSL bindings always return a key length of 16 for RC4 ciphers, which means that when we try to use ARCFOUR256 or higher, Net::SSH generates keys which are consistently too short - 16 bytes as opposed to 32 bytes - resulting in the following error:
132
-
133
- OpenSSL::CipherError: key length too short
134
-
135
- My patch simply instructs Net::SSH to build keys of the the proper length, regardless of the required key length reported by OpenSSL.
136
-
137
- You should also be aware that your OpenSSL C libraries may also contain this bug. I've updated to 0.9.8k, but according to this thread[https://bugzilla.mindrot.org/show_bug.cgi?id=1291], the bug existed as recently as 0.9.8e! I've manually taken a look at my header files and they look ok, which is what makes me think it's a bug in the Ruby implementation.
138
-
139
- To see your OpenSSL version:
140
-
141
- $ openssl version
142
- OpenSSL 0.9.8k 25 Mar 2009
143
-
144
- After installing this gem, verify that Net::SSH is generating keys of the correct length by running the script <tt>support/arcfour_check.rb</tt>:
145
-
146
- $ ruby arcfour_support.rb
147
-
148
- which should produce the following:
149
-
150
- arcfour128: [16, 8] OpenSSL::Cipher::Cipher
151
- arcfour256: [32, 8] OpenSSL::Cipher::Cipher
152
- arcfour512: [64, 8] OpenSSL::Cipher::Cipher
153
-
154
-
155
- == RUNNING TESTS
156
-
157
- Run the test suite from the net-ssh directory with the following command:
158
-
159
- bash -c 'unset HOME && ruby -Ilib -Itest -rrubygems test/test_all.rb'
160
-
161
- Run a single test file like this:
162
-
163
- ruby -Ilib -Itest -rrubygems test/transport/test_server_version.rb
164
-
165
-
166
- === EXPECTED RESULTS
167
-
168
- * Ruby 1.8: all tests pass
169
-
170
- * Ruby 1.9: all tests pass
171
-
172
- * JRuby 1.5: 99% tests pass (448 tests, 1846 assertions, 1 failures)
173
-
174
-
175
- === PORT FORWARDING TESTS
176
-
177
- ruby -Ilib -Itest -rrubygems test/manual/test_forward.rb
178
-
179
- test_forward.rb must be run separately from the test suite because
180
- it requires authorizing your public SSH keys on you localhost.
181
-
182
- If you already have keys you can do this:
183
-
184
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
185
-
186
- If you don't have keys see:
187
-
188
- http://kimmo.suominen.com/docs/ssh/#ssh-keygen
189
-
190
- You should now be able to login to your localhost with out
191
- bring prompted for a password:
192
-
193
- ssh localhost
194
-
195
-
196
- == LICENSE:
197
-
198
- (The MIT License)
199
-
200
- Copyright (c) 2008 Jamis Buck
201
-
202
- Permission is hereby granted, free of charge, to any person obtaining
203
- a copy of this software and associated documentation files (the
204
- 'Software'), to deal in the Software without restriction, including
205
- without limitation the rights to use, copy, modify, merge, publish,
206
- distribute, sublicense, and/or sell copies of the Software, and to
207
- permit persons to whom the Software is furnished to do so, subject to
208
- the following conditions:
209
-
210
- The above copyright notice and this permission notice shall be
211
- included in all copies or substantial portions of the Software.
212
-
213
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
214
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
215
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
216
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
217
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
218
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
219
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.