| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|\
| |
| | |
Updated rubocop
|
| | |
|
|/ |
|
| |
|
|\
| |
| | |
Handle ProxyCommand child in case of timeout and exception
|
|/ |
|
|\
| |
| | |
Fixed side-effects caused by passing by reference
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Specifically: references to default_files and default_auth_methods
shouldn't modify the class variables, so we're asserting whether the
before and after states are equal.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The Net::SSH::Config::default_files method is supposed to "return an array of locations" to parse by default.
However, it currently returns a **reference** to the actual `@@default_files` instance variable, meaning that any API consumers who `Enumerable#shift`, `pop`, or otherwise modify the returned Array are actually **__modifying the state of the `Net::SSH` library as a whole__**, meaning that subsequent uses cannot use the same array.
I found this because I use `Net::SSH.start` by itself (eg, automagically getting configuration), but ran into problems when I added this block in front, where I'm simply loading the files to find whether the new option `IdentityAgent` is set. (Eg, I'm not otherwise using/`::translate`ing the loaded options)
```ruby
raw_opts = {}
opt_files = Net::SSH::Config.default_files
while (file = opt_files.shift)
raw_opts = Net::SSH::Config.load(file, some_hostname, raw_opts)
end
identity_agent = raw_opts.fetch("identityagent", nil)
Net::SSH.start(hostname, nil, verbose: :info) do |session|
# ... do my regular stuff
end
```
After I added that block, the attempted ssh session used the wrong username, etc, as if `#start` was no longer loading the config files.
At first I assumed that `Net::SSH::Config.load` had side effects (documented or otherwise) but I couldn't see any evidence of that in the code.
Imagine my surprise when I found the "pass by reference" problem in `::default_files`...
My fix boiled down to this:
`opt_files = Net::SSH::Config.default_files` -> `opt_files = Net::SSH::Config.default_files.clone`
Hence the PR. I don't think it makes sense for anyone to be able to modify the internal state of Net::SSH...
Feel free to reject this PR, in which case I'll make another one to adjust the docs instead, warning people of the side effects :-)
|
|\ \ \
| | | |
| | | | |
Fix uninitialized SimpleDelegator
|
|/ / / |
|
|\ \ \
| |_|/
|/| | |
Fix for current arch linux box using openssl-1.1.0g
|
|/ /
| |
| |
| | |
relative to net-ssh version 4.2.0 (released as gem)
|
|\ \
| | |
| | | |
fix typo: Unkown => Unknown
|
| | | |
|
|\ \ \
| | | |
| | | | |
disable broken rubies, update rubies with security issues
|
| |\ \ \ |
|
| | |/ /
| |/| | |
|
|\ \ \ \
| |_|/ /
|/| | | |
Remove Net::SSH::Compat.io_select
|
| |/ /
| | |
| | |
| | |
| | | |
Despite the comment, it was not doing anything anymore except invoking
the default `IO.select`.
|
|\ \ \
| | | |
| | | | |
Use OpenSSL for aes*-ctr
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | | |
Fix Net::SSH.start docs
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
improve CTR speed by not mutating the remaining string in a loop
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
#slice! in a loop gets expensive quickly when encrypting larger data blobs
(e.g. when uploading data through net-sftp).
#slice! needs to modify self AND create a new string for the substr,
#slice on the other hand only needs to do the latter.
as we do not need the modified remaining string in the loop we can simply
slice in the loop and then change remaining afterwards to modify the
string permanently.
|
|\ \ \ \
| | | | |
| | | | | |
Ed25519 gem
|
| | | | | |
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
RbNaCl is a much more heavyweight dependency that is only being used for
Ed25519 signatures.
The ed25519 gem should install much more quickly.
This change otherwise preserves ed25519 being used as an optional
dependency and generally tries to keep as much as possible the same.
|
|\ \ \ \
| |/ / /
|/| | | |
Add initial Match support
|
| |\ \ \
| |/ / /
|/| | | |
|
|\ \ \ \
| |_|/ /
|/| | | |
Troubleshoot travis.yml file
|
|/ / / |
|
|/ /
| |
| |
| |
| | |
This change makes Net::SSH::Config to recognize `Match` directive in ssh_config.
Only the `all` criteria keyword (and its negation) is supported at this time.
|
|/ |
|
|\
| |
| | |
4.2.0.rc2 prepare
|
|/ |
|
|\
| |
| | |
Test for proxy close and test for auth failure
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Fix debug output with proxy command
|
| | | |
|
|\ \ \
| | |/
| |/| |
420rc1prepare
|
|/ / |
|