net-ssh 3.2.0 → 7.2.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data/.dockerignore +6 -0
- data/.github/FUNDING.yml +1 -0
- data/.github/config/rubocop_linter_action.yml +4 -0
- data/.github/workflows/ci-with-docker.yml +44 -0
- data/.github/workflows/ci.yml +93 -0
- data/.github/workflows/rubocop.yml +16 -0
- data/.gitignore +13 -0
- data/.rubocop.yml +22 -0
- data/.rubocop_todo.yml +1081 -0
- data/CHANGES.txt +237 -7
- data/DEVELOPMENT.md +23 -0
- data/Dockerfile +27 -0
- data/Dockerfile.openssl3 +17 -0
- data/Gemfile +13 -0
- data/Gemfile.noed25519 +12 -0
- data/Gemfile.norbnacl +12 -0
- data/ISSUE_TEMPLATE.md +30 -0
- data/Manifest +4 -5
- data/README.md +298 -0
- data/Rakefile +125 -74
- data/SECURITY.md +4 -0
- data/appveyor.yml +58 -0
- data/docker-compose.yml +23 -0
- data/lib/net/ssh/authentication/agent.rb +279 -18
- data/lib/net/ssh/authentication/certificate.rb +183 -0
- data/lib/net/ssh/authentication/constants.rb +17 -15
- data/lib/net/ssh/authentication/ed25519.rb +186 -0
- data/lib/net/ssh/authentication/ed25519_loader.rb +31 -0
- data/lib/net/ssh/authentication/key_manager.rb +86 -39
- data/lib/net/ssh/authentication/methods/abstract.rb +67 -48
- data/lib/net/ssh/authentication/methods/hostbased.rb +34 -37
- data/lib/net/ssh/authentication/methods/keyboard_interactive.rb +13 -13
- data/lib/net/ssh/authentication/methods/none.rb +16 -19
- data/lib/net/ssh/authentication/methods/password.rb +27 -17
- data/lib/net/ssh/authentication/methods/publickey.rb +96 -55
- data/lib/net/ssh/authentication/pageant.rb +471 -367
- data/lib/net/ssh/authentication/pub_key_fingerprint.rb +43 -0
- data/lib/net/ssh/authentication/session.rb +131 -121
- data/lib/net/ssh/buffer.rb +399 -300
- data/lib/net/ssh/buffered_io.rb +154 -150
- data/lib/net/ssh/config.rb +308 -185
- data/lib/net/ssh/connection/channel.rb +635 -613
- data/lib/net/ssh/connection/constants.rb +29 -29
- data/lib/net/ssh/connection/event_loop.rb +123 -0
- data/lib/net/ssh/connection/keepalive.rb +55 -51
- data/lib/net/ssh/connection/session.rb +620 -551
- data/lib/net/ssh/connection/term.rb +125 -123
- data/lib/net/ssh/errors.rb +101 -99
- data/lib/net/ssh/key_factory.rb +197 -105
- data/lib/net/ssh/known_hosts.rb +214 -127
- data/lib/net/ssh/loggable.rb +50 -49
- data/lib/net/ssh/packet.rb +83 -79
- data/lib/net/ssh/prompt.rb +50 -81
- data/lib/net/ssh/proxy/command.rb +105 -90
- data/lib/net/ssh/proxy/errors.rb +12 -10
- data/lib/net/ssh/proxy/http.rb +82 -79
- data/lib/net/ssh/proxy/https.rb +50 -0
- data/lib/net/ssh/proxy/jump.rb +54 -0
- data/lib/net/ssh/proxy/socks4.rb +2 -6
- data/lib/net/ssh/proxy/socks5.rb +14 -17
- data/lib/net/ssh/service/forward.rb +370 -317
- data/lib/net/ssh/test/channel.rb +145 -136
- data/lib/net/ssh/test/extensions.rb +131 -110
- data/lib/net/ssh/test/kex.rb +34 -32
- data/lib/net/ssh/test/local_packet.rb +46 -44
- data/lib/net/ssh/test/packet.rb +89 -70
- data/lib/net/ssh/test/remote_packet.rb +32 -30
- data/lib/net/ssh/test/script.rb +156 -142
- data/lib/net/ssh/test/socket.rb +49 -48
- data/lib/net/ssh/test.rb +82 -77
- data/lib/net/ssh/transport/algorithms.rb +462 -359
- data/lib/net/ssh/transport/chacha20_poly1305_cipher.rb +117 -0
- data/lib/net/ssh/transport/chacha20_poly1305_cipher_loader.rb +17 -0
- data/lib/net/ssh/transport/cipher_factory.rb +122 -99
- data/lib/net/ssh/transport/constants.rb +32 -24
- data/lib/net/ssh/transport/ctr.rb +42 -22
- data/lib/net/ssh/transport/hmac/abstract.rb +81 -63
- data/lib/net/ssh/transport/hmac/md5.rb +0 -2
- data/lib/net/ssh/transport/hmac/md5_96.rb +0 -2
- data/lib/net/ssh/transport/hmac/none.rb +0 -2
- data/lib/net/ssh/transport/hmac/ripemd160.rb +0 -2
- data/lib/net/ssh/transport/hmac/sha1.rb +0 -2
- data/lib/net/ssh/transport/hmac/sha1_96.rb +0 -2
- 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/hmac.rb +14 -12
- data/lib/net/ssh/transport/identity_cipher.rb +54 -44
- data/lib/net/ssh/transport/kex/abstract.rb +130 -0
- data/lib/net/ssh/transport/kex/abstract5656.rb +72 -0
- data/lib/net/ssh/transport/kex/curve25519_sha256.rb +39 -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_group14_sha256.rb +11 -0
- data/lib/net/ssh/transport/kex/diffie_hellman_group1_sha1.rb +119 -213
- data/lib/net/ssh/transport/kex/diffie_hellman_group_exchange_sha1.rb +53 -61
- 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/kex.rb +15 -12
- data/lib/net/ssh/transport/key_expander.rb +24 -20
- data/lib/net/ssh/transport/openssl.rb +161 -124
- data/lib/net/ssh/transport/openssl_cipher_extensions.rb +8 -0
- data/lib/net/ssh/transport/packet_stream.rb +246 -185
- data/lib/net/ssh/transport/server_version.rb +55 -56
- data/lib/net/ssh/transport/session.rb +306 -255
- data/lib/net/ssh/transport/state.rb +178 -176
- data/lib/net/ssh/verifiers/accept_new.rb +33 -0
- data/lib/net/ssh/verifiers/accept_new_or_local_tunnel.rb +33 -0
- data/lib/net/ssh/verifiers/always.rb +58 -0
- data/lib/net/ssh/verifiers/never.rb +19 -0
- data/lib/net/ssh/version.rb +55 -53
- data/lib/net/ssh.rb +111 -47
- data/net-ssh-public_cert.pem +18 -18
- data/net-ssh.gemspec +38 -205
- data/support/ssh_tunnel_bug.rb +5 -5
- data.tar.gz.sig +0 -0
- metadata +173 -118
- metadata.gz.sig +0 -0
- data/.travis.yml +0 -18
- data/README.rdoc +0 -182
- data/lib/net/ssh/authentication/agent/java_pageant.rb +0 -85
- data/lib/net/ssh/authentication/agent/socket.rb +0 -178
- data/lib/net/ssh/ruby_compat.rb +0 -46
- 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/setup.rb +0 -1585
- data/support/arcfour_check.rb +0 -20
- data/test/README.txt +0 -18
- data/test/authentication/methods/common.rb +0 -28
- data/test/authentication/methods/test_abstract.rb +0 -51
- data/test/authentication/methods/test_hostbased.rb +0 -114
- data/test/authentication/methods/test_keyboard_interactive.rb +0 -121
- data/test/authentication/methods/test_none.rb +0 -41
- data/test/authentication/methods/test_password.rb +0 -95
- data/test/authentication/methods/test_publickey.rb +0 -148
- data/test/authentication/test_agent.rb +0 -232
- data/test/authentication/test_key_manager.rb +0 -240
- data/test/authentication/test_session.rb +0 -107
- data/test/common.rb +0 -125
- data/test/configs/auth_off +0 -5
- data/test/configs/auth_on +0 -4
- data/test/configs/empty +0 -0
- data/test/configs/eqsign +0 -3
- data/test/configs/exact_match +0 -8
- data/test/configs/host_plus +0 -10
- data/test/configs/multihost +0 -4
- data/test/configs/negative_match +0 -6
- data/test/configs/nohost +0 -19
- data/test/configs/numeric_host +0 -4
- data/test/configs/proxy_remote_user +0 -2
- data/test/configs/send_env +0 -2
- data/test/configs/substitutes +0 -8
- data/test/configs/wild_cards +0 -14
- data/test/connection/test_channel.rb +0 -487
- data/test/connection/test_session.rb +0 -564
- data/test/integration/README.txt +0 -17
- data/test/integration/Vagrantfile +0 -12
- data/test/integration/common.rb +0 -63
- data/test/integration/playbook.yml +0 -56
- data/test/integration/test_forward.rb +0 -637
- data/test/integration/test_id_rsa_keys.rb +0 -96
- data/test/integration/test_proxy.rb +0 -93
- data/test/known_hosts/github +0 -1
- data/test/known_hosts/github_hash +0 -1
- data/test/manual/test_pageant.rb +0 -37
- data/test/start/test_connection.rb +0 -53
- data/test/start/test_options.rb +0 -57
- data/test/start/test_transport.rb +0 -28
- data/test/start/test_user_nil.rb +0 -27
- data/test/test_all.rb +0 -12
- data/test/test_buffer.rb +0 -433
- data/test/test_buffered_io.rb +0 -63
- data/test/test_config.rb +0 -268
- data/test/test_key_factory.rb +0 -191
- data/test/test_known_hosts.rb +0 -66
- data/test/transport/hmac/test_md5.rb +0 -41
- data/test/transport/hmac/test_md5_96.rb +0 -27
- data/test/transport/hmac/test_none.rb +0 -34
- data/test/transport/hmac/test_ripemd160.rb +0 -36
- data/test/transport/hmac/test_sha1.rb +0 -36
- data/test/transport/hmac/test_sha1_96.rb +0 -27
- data/test/transport/hmac/test_sha2_256.rb +0 -37
- data/test/transport/hmac/test_sha2_256_96.rb +0 -27
- data/test/transport/hmac/test_sha2_512.rb +0 -37
- data/test/transport/hmac/test_sha2_512_96.rb +0 -27
- data/test/transport/kex/test_diffie_hellman_group14_sha1.rb +0 -13
- data/test/transport/kex/test_diffie_hellman_group1_sha1.rb +0 -150
- data/test/transport/kex/test_diffie_hellman_group_exchange_sha1.rb +0 -96
- data/test/transport/kex/test_diffie_hellman_group_exchange_sha256.rb +0 -19
- data/test/transport/kex/test_ecdh_sha2_nistp256.rb +0 -161
- data/test/transport/kex/test_ecdh_sha2_nistp384.rb +0 -38
- data/test/transport/kex/test_ecdh_sha2_nistp521.rb +0 -38
- data/test/transport/test_algorithms.rb +0 -328
- data/test/transport/test_cipher_factory.rb +0 -443
- data/test/transport/test_hmac.rb +0 -34
- data/test/transport/test_identity_cipher.rb +0 -40
- data/test/transport/test_packet_stream.rb +0 -1762
- data/test/transport/test_server_version.rb +0 -74
- data/test/transport/test_session.rb +0 -331
- data/test/transport/test_state.rb +0 -181
- data/test/verifiers/test_secure.rb +0 -40
data/CHANGES.txt
CHANGED
|
@@ -1,12 +1,242 @@
|
|
|
1
|
-
===
|
|
1
|
+
=== 7.2.0
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
* Send KEXINIT asap don't wait for server [Miklos Fazekas]
|
|
5
|
-
* Close channels in case server closed connection [Miklos Fazekas]
|
|
3
|
+
=== 7.2.0 rc1
|
|
6
4
|
|
|
7
|
-
|
|
5
|
+
* Allow IdentityAgent as option to Net::SSH.start [#912]
|
|
8
6
|
|
|
9
|
-
|
|
7
|
+
=== 7.2.0 beta1
|
|
8
|
+
|
|
9
|
+
* Support `chacha20-poly1305@opnessh.com` cypher if `RbNaCl` gem is installed [#908]
|
|
10
|
+
|
|
11
|
+
=== 7.1.0
|
|
12
|
+
|
|
13
|
+
* Accept pubkey_algorithms option when starting a new connection [#891]
|
|
14
|
+
|
|
15
|
+
=== 7.1.0 beta1
|
|
16
|
+
|
|
17
|
+
* Don't use the deprecated set_XXX methods on RSA keys. [#875]
|
|
18
|
+
* Raise error when BCryptPbkdf fails [#876]
|
|
19
|
+
|
|
20
|
+
=== 7.0.1
|
|
21
|
+
|
|
22
|
+
* Drop leftover debug statement [#866]
|
|
23
|
+
|
|
24
|
+
=== 7.0.0
|
|
25
|
+
|
|
26
|
+
* BREAKING: Drop support for Ruby 2.5
|
|
27
|
+
* Fix decoding of ecdsa-sha2-nistp256 private keys [#657, #854]
|
|
28
|
+
* Fix missing require [#855]
|
|
29
|
+
* Support `~` in the path to the SSH agent's unix socket [#850]
|
|
30
|
+
* Add support for RSA client authentication with SHA-2 [a45f54]
|
|
31
|
+
* openssl: DSA: don't hardcode expected signature size, see ruby/openssl#483 [23a15c]
|
|
32
|
+
* Internal housekeeping (rubocop, codecov, remove travis, adding/improving tests)
|
|
33
|
+
|
|
34
|
+
=== 6.3.0 beta1
|
|
35
|
+
|
|
36
|
+
* Support cert based host key auth, fix asterisk in known_hosts [#833]
|
|
37
|
+
* Support kex dh-group14-sha256 [#795]
|
|
38
|
+
* Fix StrictHostKeyChecking ssh config parameter translation [#765]
|
|
39
|
+
|
|
40
|
+
=== 6.2.0 rc1
|
|
41
|
+
|
|
42
|
+
=== 6.2.0 beta1
|
|
43
|
+
|
|
44
|
+
* rsa-sha2-512, rsa-sha2-256 host_key algs [#771]
|
|
45
|
+
* JRuby aes*-ctr suppport [#767]
|
|
46
|
+
|
|
47
|
+
=== 6.1.0
|
|
48
|
+
|
|
49
|
+
* Adapt to ssh's default behaviors when no username is provided.
|
|
50
|
+
When Net::SSH.start user is nil and config has no entry
|
|
51
|
+
we default to Etc.getpwuid.name() instead of Etc.getlogin(). [#749]
|
|
52
|
+
|
|
53
|
+
=== 6.1.0.rc1
|
|
54
|
+
|
|
55
|
+
* Make sha2-{256,512}-etm@openssh.com MAC default again [#761]
|
|
56
|
+
* Support algorithm subtraction syntax from ssh_config [#751]
|
|
57
|
+
|
|
58
|
+
=== 6.0.2
|
|
59
|
+
|
|
60
|
+
* Fix corrupted hmac issue in etm hmac [#759]
|
|
61
|
+
|
|
62
|
+
=== 6.0.1
|
|
63
|
+
|
|
64
|
+
* Make sha2-{256,512}-etm@openssh.com MAC opt-in as they seems to have issues [#757]
|
|
65
|
+
|
|
66
|
+
=== 6.0.0
|
|
67
|
+
|
|
68
|
+
* Support empty lines and comments in known_hosts [donoghuc, #742]
|
|
69
|
+
* Add sha2-{256,512}-etm@openssh.com MAC algorithms [graaff, #714]
|
|
70
|
+
|
|
71
|
+
=== 6.0.0 beta2
|
|
72
|
+
|
|
73
|
+
* Support :certkeys and CertificateFile configuration option [Anders Carling, #722]
|
|
74
|
+
|
|
75
|
+
=== 6.0.0 beta1
|
|
76
|
+
|
|
77
|
+
* curve25519sha256 support [Florian Wininger ,#690]
|
|
78
|
+
* disabled insecure algs [Florian Wininger , #709]
|
|
79
|
+
|
|
80
|
+
=== 5.2.0
|
|
81
|
+
|
|
82
|
+
=== 5.2.0.rc3
|
|
83
|
+
|
|
84
|
+
* Fix check_host_ip read from config
|
|
85
|
+
* Support ssh-ed25519 in known hosts
|
|
86
|
+
|
|
87
|
+
=== 5.2.0.rc2
|
|
88
|
+
|
|
89
|
+
* Read check_host_ip from ssh config files
|
|
90
|
+
|
|
91
|
+
=== 5.2.0.rc1
|
|
92
|
+
|
|
93
|
+
* Interpret * and ? in know_hosts file [Romain Tartière, #660]
|
|
94
|
+
* New :check_host_ip so ip checking can be disabled in known hosts [Romain Tartière, #656]
|
|
95
|
+
|
|
96
|
+
=== 5.1.0
|
|
97
|
+
|
|
98
|
+
=== 5.1.0.rc1
|
|
99
|
+
|
|
100
|
+
* Support new OpenSSH private key format for rsa - bcrypt for rsa (ed25519 already supported) [#646]
|
|
101
|
+
* Support IdentityAgent is ssh config [Frank Groeneveld, #645]
|
|
102
|
+
* Improve Match processing in ssh config [Aleksandrs Ļedovskis, #642]
|
|
103
|
+
* Ignore signature verification when verify_host_key is never [Piotr Kliczewski, #641]
|
|
104
|
+
* Alg preference was changed to prefer stronger encryptions [Tray, #637]
|
|
105
|
+
|
|
106
|
+
=== 5.0.2
|
|
107
|
+
|
|
108
|
+
* Fix ctr for jruby [#612]
|
|
109
|
+
|
|
110
|
+
=== 5.0.1
|
|
111
|
+
|
|
112
|
+
* default_keys were not loaded even if no keys or key_data options specified [#607]
|
|
113
|
+
|
|
114
|
+
=== 5.0.0
|
|
115
|
+
|
|
116
|
+
* Breaking change: ed25519 now requires ed25519 gem instead of RbNaCl gem [#563]
|
|
117
|
+
* Verify_host_key options rename (true, false, :very, :secure depreacted new equivalents are :never, :accept_new_or_local_tunnel :accept_new :always) [Jared Beck, #595]
|
|
118
|
+
|
|
119
|
+
=== 5.0.0.rc2
|
|
120
|
+
|
|
121
|
+
* Add .dll extensions to dlopen on cygwin [#603]
|
|
122
|
+
* Fix host certificate validation [#601]
|
|
123
|
+
|
|
124
|
+
=== 5.0.0.rc1
|
|
125
|
+
|
|
126
|
+
* Fix larger than 4GB file transfers [#599]
|
|
127
|
+
* Update HTTP proxy to version 1.1 [Connor Dunn, #597]
|
|
128
|
+
|
|
129
|
+
=== 5.0.0.beta2
|
|
130
|
+
|
|
131
|
+
* Support for sha256 pubkey fingerprint [Tom Maher, #585]
|
|
132
|
+
* Don't try to load default_keys if key_data option is used [Josh Larson, #589]
|
|
133
|
+
* Added fingerprint_hash defaulting to SHA256 as fingerprint format, and MD5 can be used as an option [Miklós Fazekas, #591]
|
|
134
|
+
|
|
135
|
+
=== 5.0.0.beta1
|
|
136
|
+
|
|
137
|
+
* Don't leave proxy command as zombie on timeout [DimitriosLisenko, #560]
|
|
138
|
+
* Use OpenSSL for aes*-ctr for up to 5x throughput improvement [Miklós Fazekas, Harald Sitter, #570]
|
|
139
|
+
* Optimize slice! usage in CTR for up to 2x throughput improvement [Harald Sitter, #569]
|
|
140
|
+
* Replace RbNaCl dependency with ed25519 gem [Tony Arcieri ,#563]
|
|
141
|
+
* Add initial Match support [Kasumi Hanazuki, #553]
|
|
142
|
+
|
|
143
|
+
=== 4.2.0.rc2
|
|
144
|
+
|
|
145
|
+
* Fix double close bug on auth failure (or ruby 2.2 or earlier) [#538]
|
|
146
|
+
|
|
147
|
+
=== 4.2.0.rc1
|
|
148
|
+
|
|
149
|
+
* Improved logging with proxy command [Dmitriy Ivliev, #530]
|
|
150
|
+
* Close transport on proxy error [adamruzicka, #526]
|
|
151
|
+
* Support multiple identity files [Kimura Masayuki, #528]
|
|
152
|
+
* Move `none` cipher to end of cipher list [Brian Cain, #525]
|
|
153
|
+
* Deprecate `:paranoid` in favor of `:verify_host_key` [Jared Beck, #524]
|
|
154
|
+
* Support Multile Include ssh config files [Kasumi Hanazuki, #516]
|
|
155
|
+
* Support Relative path in ssh confif files [Akinori MUSHA, #510]
|
|
156
|
+
* add direct-streamlocal@openssh.com support in Forward class [Harald Sitter, #502]
|
|
157
|
+
|
|
158
|
+
=== 4.1.0
|
|
159
|
+
=== 4.1.0.rc1
|
|
160
|
+
|
|
161
|
+
* ProxyJump support [Ryan McGeary, #500]
|
|
162
|
+
* Fix agent detection on Windows [Christian Koehler, #495]
|
|
163
|
+
|
|
164
|
+
=== 4.1.0.beta1
|
|
165
|
+
|
|
166
|
+
* Fix nil error when libsodium is not there [chapmajs ,#488]
|
|
167
|
+
* SSH certificate support for client auth [David Bartley, #485]
|
|
168
|
+
|
|
169
|
+
=== 4.0.1
|
|
170
|
+
=== 4.0.1.rc2
|
|
171
|
+
|
|
172
|
+
* ENV["HOME"] might be empty so filter non expandable paths [Matt Casper, #351]
|
|
173
|
+
|
|
174
|
+
=== 4.0.1.rc1
|
|
175
|
+
|
|
176
|
+
* support of rbnacl 4.0 and better error message [#479]
|
|
177
|
+
* support include in config files [Kimura Masayuki, #475]
|
|
178
|
+
* fixed issue with ruby 2.2 or older on windows [#472]
|
|
179
|
+
|
|
180
|
+
=== 4.0.0
|
|
181
|
+
=== 4.0.0.rc3
|
|
182
|
+
|
|
183
|
+
* parse `+` character in config files [Christoph Lupprich, #470, #314]
|
|
184
|
+
|
|
185
|
+
=== 4.0.0.rc2
|
|
186
|
+
|
|
187
|
+
* Fixed OpenSSL 2.0/Ruby 2.4.0 warnings [Miklós Fazekas, #468]
|
|
188
|
+
* Added ssh-ed25519 to KnownHosts:SUPPORTED_TYPE [detatka-kuzlatka-otevrete, Miklós Fazekas, #459]
|
|
189
|
+
* Allow nil for :passhrase and passing in nil option is now a depreaction warning [Miklós Fazekas, #465]
|
|
190
|
+
|
|
191
|
+
=== 4.0.0.rc1
|
|
192
|
+
|
|
193
|
+
* Allow :password to be nil for capistrano v2 compatibility [Will Bryant, #357]
|
|
194
|
+
* In next_packet if prefer consuming buffer before filling it again if we have enough data [Miklós Fazekas, #454]
|
|
195
|
+
|
|
196
|
+
=== 4.0.0.beta4
|
|
197
|
+
|
|
198
|
+
* Added exitstatus method to exec's return [Miklós Fazekas, #452]
|
|
199
|
+
* Don't raise from exec if server closes transport just after channel close [Miklós Fazekas, #450]
|
|
200
|
+
* Removed java_pageant, as jruby should be using regular pagent impl [Miklós Fazekas, ]
|
|
201
|
+
* Use SSH_AUTH_SOCK if possible on windows (cygwin) [Miklós Fazekas, Martin Dürst, #365, #361]
|
|
202
|
+
* HTTPS proxy support [Marcus Ilgner, #432]
|
|
203
|
+
* Supports ruby 2.4.0.dev new exception type from OpenSSL::PKey.read
|
|
204
|
+
|
|
205
|
+
=== 4.0.0.beta3
|
|
206
|
+
|
|
207
|
+
* Fix Net::SSH::Disconnect exceptions when channels are closed cleanly [Miklos Fazekas, #421, #422]
|
|
208
|
+
|
|
209
|
+
=== 4.0.0.beta2
|
|
210
|
+
|
|
211
|
+
* Fix raiseUnlessLoaded undefined ERROR issue [Miklos Fazekas, #418]
|
|
212
|
+
|
|
213
|
+
=== 4.0.0.beta1
|
|
214
|
+
|
|
215
|
+
* Fix pageant [elconas, #235]
|
|
216
|
+
* Relaxed rbnacl,rbnacl-selenium contstraints ang give better errors about them [Miklos Fazekas, #398]
|
|
217
|
+
* Fix UTF-8 encoding issues [Ethan J. Brown, #407]
|
|
218
|
+
|
|
219
|
+
=== 4.0.0.alpha4
|
|
220
|
+
|
|
221
|
+
* Experimental event loop abstraction [Miklos Fazekas]
|
|
222
|
+
* RbNacl dependency is optional [Miklos Fazekas]
|
|
223
|
+
* agent_socket_factory option [Alon Goldboim]
|
|
224
|
+
* client sends KEXINIT, it doesn't have to wait for server [Miklos Fazekas]
|
|
225
|
+
* better error message when option is nil [Kane Morgan]
|
|
226
|
+
* prompting can be customized [Miklos Fazekas]
|
|
227
|
+
|
|
228
|
+
=== 4.0.0.alpha3
|
|
229
|
+
|
|
230
|
+
* added max_select_wait_time [Eugene Kenny]
|
|
231
|
+
|
|
232
|
+
=== 4.0.0.alpha2
|
|
233
|
+
|
|
234
|
+
* when transport closes we're cleaning up channels [Miklos Fazekas]
|
|
235
|
+
|
|
236
|
+
=== 4.0.0.alpha1
|
|
237
|
+
|
|
238
|
+
* ed25519 key support [Miklos Fazekas]
|
|
239
|
+
* removed camellia [Miklos Fazekas]
|
|
10
240
|
|
|
11
241
|
=== 3.1.0
|
|
12
242
|
=== 3.1.0.rc1
|
|
@@ -95,7 +325,7 @@
|
|
|
95
325
|
=== 2.9.2-beta
|
|
96
326
|
|
|
97
327
|
* Remove advertised algorithms that were not working (ssh-rsa-cert-* *ed25519 acm*-gcm@openssh.com) [mfazekas]
|
|
98
|
-
*
|
|
328
|
+
* Unknown algorithms now ignored instead of failed [mfazekas]
|
|
99
329
|
* Configuration change: Asks for password with password auth (up to number_of_password_prompts) [mfazekas]
|
|
100
330
|
* Removed warnings [amatsuda]
|
|
101
331
|
|
data/DEVELOPMENT.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
### Development notes
|
|
2
|
+
|
|
3
|
+
## Building/running ssh server in debug mode
|
|
4
|
+
|
|
5
|
+
clone the openssh server from `https://github.com/openssh/openssh-portable`
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
brew install openssl
|
|
9
|
+
/usr/local/Cellar/openssl@3/3.1.0/bin/openssl
|
|
10
|
+
|
|
11
|
+
autoreconf
|
|
12
|
+
./configure --with-ssl-dir=/usr/local/Cellar/openssl@3/3.1.0/ --with-audit=debug --enable-debug CPPFLAGS="-DDEBUG -DPACKET_DEBUG" CFLAGS="-g -O0"
|
|
13
|
+
make
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
To run server in debug mode:
|
|
17
|
+
```sh
|
|
18
|
+
echo '#' > /tmp/sshd_config
|
|
19
|
+
ssh-keygen -t rsa -f /tmp/ssh_host_rsa_key
|
|
20
|
+
# /Users/boga/Work/OSS/NetSSH/openssh-portable/sshd -p 2222 -D -d -d -d -e -f /tmp/sshd_config
|
|
21
|
+
/Users/boga/Work/OSS/NetSSH/openssh-portable/sshd -p 2222 -D -d -d -d -e -f /tmp/sshd_config -h /tmp/ssh_host_rsa_key
|
|
22
|
+
|
|
23
|
+
```
|
data/Dockerfile
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
ARG RUBY_VERSION=3.1
|
|
2
|
+
FROM ruby:${RUBY_VERSION}
|
|
3
|
+
|
|
4
|
+
RUN apt update && apt install -y openssh-server sudo netcat-openbsd \
|
|
5
|
+
&& useradd --create-home --shell '/bin/bash' --comment 'NetSSH' 'net_ssh_1' \
|
|
6
|
+
&& useradd --create-home --shell '/bin/bash' --comment 'NetSSH' 'net_ssh_2' \
|
|
7
|
+
&& echo net_ssh_1:foopwd | chpasswd \
|
|
8
|
+
&& echo net_ssh_2:foo2pwd | chpasswd \
|
|
9
|
+
&& mkdir -p /home/net_ssh_1/.ssh \
|
|
10
|
+
&& mkdir -p /home/net_ssh_2/.ssh \
|
|
11
|
+
&& echo "net_ssh_1 ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers \
|
|
12
|
+
&& echo "net_ssh_2 ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers \
|
|
13
|
+
&& ssh-keygen -f /etc/ssh/users_ca -N ''
|
|
14
|
+
|
|
15
|
+
ENV INSTALL_PATH="/netssh"
|
|
16
|
+
|
|
17
|
+
WORKDIR $INSTALL_PATH
|
|
18
|
+
|
|
19
|
+
COPY Gemfile net-ssh.gemspec $INSTALL_PATH/
|
|
20
|
+
|
|
21
|
+
COPY lib/net/ssh/version.rb $INSTALL_PATH/lib/net/ssh/version.rb
|
|
22
|
+
|
|
23
|
+
RUN gem install bundler && bundle install
|
|
24
|
+
|
|
25
|
+
COPY . $INSTALL_PATH/
|
|
26
|
+
|
|
27
|
+
CMD service ssh start && rake test && NET_SSH_NO_ED25519=1 rake test
|
data/Dockerfile.openssl3
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
FROM ubuntu:22.04
|
|
2
|
+
|
|
3
|
+
ENV INSTALL_PATH="/netssh"
|
|
4
|
+
|
|
5
|
+
RUN apt update && apt install -y openssl ruby ruby-dev git build-essential
|
|
6
|
+
|
|
7
|
+
WORKDIR $INSTALL_PATH
|
|
8
|
+
|
|
9
|
+
COPY Gemfile net-ssh.gemspec $INSTALL_PATH/
|
|
10
|
+
|
|
11
|
+
COPY lib/net/ssh/version.rb $INSTALL_PATH/lib/net/ssh/version.rb
|
|
12
|
+
|
|
13
|
+
RUN ls -l && gem install bundler && bundle install
|
|
14
|
+
|
|
15
|
+
COPY . $INSTALL_PATH/
|
|
16
|
+
|
|
17
|
+
CMD openssl version && ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION' && rake test
|
data/Gemfile
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
|
+
|
|
3
|
+
# Specify your gem's dependencies in mygem.gemspec
|
|
4
|
+
gemspec
|
|
5
|
+
|
|
6
|
+
gem 'byebug', group: %i[development test] if !Gem.win_platform? && RUBY_ENGINE == "ruby"
|
|
7
|
+
|
|
8
|
+
if ENV["CI"]
|
|
9
|
+
gem 'codecov', require: false, group: :test
|
|
10
|
+
gem 'simplecov', require: false, group: :test
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
gem 'webrick', group: %i[development test] if RUBY_VERSION.split(".")[0].to_i >= 3
|
data/Gemfile.noed25519
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
|
+
|
|
3
|
+
ENV['NET_SSH_NO_ED25519'] = 'true'
|
|
4
|
+
# Specify your gem's dependencies in mygem.gemspec
|
|
5
|
+
gemspec
|
|
6
|
+
|
|
7
|
+
if ENV["CI"] && !Gem.win_platform?
|
|
8
|
+
gem 'simplecov', require: false, group: :test
|
|
9
|
+
gem 'codecov', require: false, group: :test
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
gem 'webrick', group: %i[development test] if RUBY_VERSION.split(".")[0].to_i >= 3
|
data/Gemfile.norbnacl
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
source 'https://rubygems.org'
|
|
2
|
+
|
|
3
|
+
ENV['NET_SSH_NO_RBNACL'] = 'true'
|
|
4
|
+
# Specify your gem's dependencies in mygem.gemspec
|
|
5
|
+
gemspec
|
|
6
|
+
|
|
7
|
+
if ENV["CI"] && !Gem.win_platform?
|
|
8
|
+
gem 'simplecov', require: false, group: :test
|
|
9
|
+
gem 'codecov', require: false, group: :test
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
gem 'webrick', group: %i[development test] if RUBY_VERSION.split(".")[0].to_i >= 3
|
data/ISSUE_TEMPLATE.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
### Expected behavior
|
|
2
|
+
|
|
3
|
+
Tell us what should happen
|
|
4
|
+
|
|
5
|
+
### Actual behavior
|
|
6
|
+
|
|
7
|
+
Tell us what happens instead.
|
|
8
|
+
|
|
9
|
+
### System configuration
|
|
10
|
+
|
|
11
|
+
- net-ssh version
|
|
12
|
+
- Ruby version
|
|
13
|
+
|
|
14
|
+
### Example App
|
|
15
|
+
|
|
16
|
+
Please provide an example script that reproduces the problem. This will save maintainers time so they can spend it fixing your issues instead of trying to build a reproduction case from sparse instructions.
|
|
17
|
+
|
|
18
|
+
You can use this as stating point:
|
|
19
|
+
|
|
20
|
+
```ruby
|
|
21
|
+
gem 'net-ssh', '= 4.0.0.beta3'
|
|
22
|
+
require 'net/ssh'
|
|
23
|
+
puts Net::SSH::Version::CURRENT
|
|
24
|
+
|
|
25
|
+
@host = 'localhost'
|
|
26
|
+
@user = ENV['USER']
|
|
27
|
+
Net::SSH.start(@host, @user) do |ssh|
|
|
28
|
+
puts ssh.exec!('echo "hello"')
|
|
29
|
+
end
|
|
30
|
+
```
|
data/Manifest
CHANGED
|
@@ -33,7 +33,6 @@ lib/net/ssh/proxy/errors.rb
|
|
|
33
33
|
lib/net/ssh/proxy/http.rb
|
|
34
34
|
lib/net/ssh/proxy/socks4.rb
|
|
35
35
|
lib/net/ssh/proxy/socks5.rb
|
|
36
|
-
lib/net/ssh/ruby_compat.rb
|
|
37
36
|
lib/net/ssh/service/forward.rb
|
|
38
37
|
lib/net/ssh/test.rb
|
|
39
38
|
lib/net/ssh/test/channel.rb
|
|
@@ -75,10 +74,10 @@ lib/net/ssh/transport/packet_stream.rb
|
|
|
75
74
|
lib/net/ssh/transport/server_version.rb
|
|
76
75
|
lib/net/ssh/transport/session.rb
|
|
77
76
|
lib/net/ssh/transport/state.rb
|
|
78
|
-
lib/net/ssh/verifiers/
|
|
79
|
-
lib/net/ssh/verifiers/
|
|
80
|
-
lib/net/ssh/verifiers/
|
|
81
|
-
lib/net/ssh/verifiers/
|
|
77
|
+
lib/net/ssh/verifiers/accept_new.rb
|
|
78
|
+
lib/net/ssh/verifiers/accept_new_or_local_tunnel.rb
|
|
79
|
+
lib/net/ssh/verifiers/always.rb
|
|
80
|
+
lib/net/ssh/verifiers/never.rb
|
|
82
81
|
lib/net/ssh/version.rb
|
|
83
82
|
net-ssh.gemspec
|
|
84
83
|
setup.rb
|