net-ssh 3.2.0.rc1 → 3.2.0.rc2
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 +4 -4
- checksums.yaml.gz.sig +2 -2
- data.tar.gz.sig +0 -0
- data/lib/net/ssh.rb +4 -1
- data/lib/net/ssh/authentication/agent/java_pageant.rb +1 -1
- data/lib/net/ssh/authentication/agent/socket.rb +5 -5
- data/lib/net/ssh/authentication/key_manager.rb +1 -1
- data/lib/net/ssh/service/forward.rb +1 -1
- data/lib/net/ssh/version.rb +1 -1
- data/net-ssh.gemspec +3 -3
- data/test/authentication/test_agent.rb +9 -1
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4bc08b5859ba2b8174bc55389dd24b304f4f1404
|
4
|
+
data.tar.gz: d620847f2da3225dccb38c971ef076a5fb437c56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ca9e04291a887bc9fe4b303c0c8bb2fab017157ba96e2996aacfc5f724c9e53c01dec38de0a612e6351141c788f3b5fe4b15723e3893f395b0c122de9f03c14
|
7
|
+
data.tar.gz: 93b1c9d9f68860bbebb0bc213662848b768d442a4718ca9d3190473912dd48655457195ac6d44d6d9084a156befe567773a8ed48d6b8e909ebc3dbd17517cce6
|
checksums.yaml.gz.sig
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
8F�j�L�4G��_ط��bk��ֲM��_�ȝ�[�����T��#xh;�<-(��W�Ҳ��˙�.�Sٹ��?�j��)�t�U�*X-\30cI�g��-i
|
2
|
+
�}MN��BQ�l%��4�}CM�%՞��gC�D� ��p3�N�(�^����V��_����zCtXe.��X��W����iS�c��Ql3���7����Xҕ]�E���I$��!��a.(2F\��c]`����N~��=�T��col��b_
|
data.tar.gz.sig
CHANGED
Binary file
|
data/lib/net/ssh.rb
CHANGED
@@ -70,7 +70,7 @@ module Net
|
|
70
70
|
:known_hosts, :global_known_hosts_file, :user_known_hosts_file, :host_key_alias,
|
71
71
|
:host_name, :user, :properties, :passphrase, :keys_only, :max_pkt_size,
|
72
72
|
:max_win_size, :send_env, :use_agent, :number_of_password_prompts,
|
73
|
-
:append_supported_algorithms, :non_interactive
|
73
|
+
:append_supported_algorithms, :non_interactive, :agent_socket_factory
|
74
74
|
]
|
75
75
|
|
76
76
|
# The standard means of starting a new SSH connection. When used with a
|
@@ -192,6 +192,9 @@ module Net
|
|
192
192
|
# password auth method
|
193
193
|
# * :non_interactive => non interactive applications should set it to true
|
194
194
|
# to prefer failing a password/etc auth methods vs asking for password
|
195
|
+
# * :agent_socket_factory => enables the user to pass a lambda/block that will serve as the socket factory
|
196
|
+
# Net::SSH::start(user,host,agent_socket_factory: ->{ UNIXSocket.open('/foo/bar') })
|
197
|
+
# example: ->{ UNIXSocket.open('/foo/bar')}
|
195
198
|
#
|
196
199
|
# If +user+ parameter is nil it defaults to USER from ssh_config, or
|
197
200
|
# local username
|
@@ -19,7 +19,7 @@ module Net; module SSH; module Authentication
|
|
19
19
|
|
20
20
|
# Instantiates a new agent object, connects to a running SSH agent,
|
21
21
|
# negotiates the agent protocol version, and returns the agent object.
|
22
|
-
def self.connect(logger=nil)
|
22
|
+
def self.connect(logger=nil, agent_socket_factory)
|
23
23
|
agent = new(logger)
|
24
24
|
agent.connect!
|
25
25
|
agent
|
@@ -42,9 +42,9 @@ module Net; module SSH; module Authentication
|
|
42
42
|
|
43
43
|
# Instantiates a new agent object, connects to a running SSH agent,
|
44
44
|
# negotiates the agent protocol version, and returns the agent object.
|
45
|
-
def self.connect(logger=nil)
|
45
|
+
def self.connect(logger=nil, agent_socket_factory = nil)
|
46
46
|
agent = new(logger)
|
47
|
-
agent.connect!
|
47
|
+
agent.connect!(agent_socket_factory)
|
48
48
|
agent.negotiate!
|
49
49
|
agent
|
50
50
|
end
|
@@ -59,10 +59,10 @@ module Net; module SSH; module Authentication
|
|
59
59
|
# given by the attribute writers. If the agent on the other end of the
|
60
60
|
# socket reports that it is an SSH2-compatible agent, this will fail
|
61
61
|
# (it only supports the ssh-agent distributed by OpenSSH).
|
62
|
-
def connect!
|
62
|
+
def connect!(agent_socket_factory = nil)
|
63
63
|
begin
|
64
64
|
debug { "connecting to ssh-agent" }
|
65
|
-
@socket = agent_socket_factory.open(ENV['SSH_AUTH_SOCK'])
|
65
|
+
@socket = agent_socket_factory.nil? ? socket_class.open(ENV['SSH_AUTH_SOCK']) : agent_socket_factory.call
|
66
66
|
rescue
|
67
67
|
error { "could not connect to ssh-agent" }
|
68
68
|
raise AgentNotAvailable, $!.message
|
@@ -132,7 +132,7 @@ module Net; module SSH; module Authentication
|
|
132
132
|
private
|
133
133
|
|
134
134
|
# Returns the agent socket factory to use.
|
135
|
-
def
|
135
|
+
def socket_class
|
136
136
|
if Net::SSH::Authentication::PLATFORM == :win32
|
137
137
|
Pageant::Socket
|
138
138
|
else
|
@@ -176,7 +176,7 @@ module Net
|
|
176
176
|
# or if the agent is otherwise not available.
|
177
177
|
def agent
|
178
178
|
return unless use_agent?
|
179
|
-
@agent ||= Agent.connect(logger)
|
179
|
+
@agent ||= Agent.connect(logger, options[:agent_socket_factory])
|
180
180
|
rescue AgentNotAvailable
|
181
181
|
@use_agent = false
|
182
182
|
nil
|
@@ -357,7 +357,7 @@ module Net; module SSH; module Service
|
|
357
357
|
channel[:invisible] = true
|
358
358
|
|
359
359
|
begin
|
360
|
-
agent = Authentication::Agent.connect(logger)
|
360
|
+
agent = Authentication::Agent.connect(logger, session.options[:agent_socket_factory])
|
361
361
|
if (agent.socket.is_a? ::IO)
|
362
362
|
prepare_client(agent.socket, channel, :agent)
|
363
363
|
else
|
data/lib/net/ssh/version.rb
CHANGED
@@ -55,7 +55,7 @@ module Net; module SSH
|
|
55
55
|
|
56
56
|
# The prerelease component of this version of the Net::SSH library
|
57
57
|
# nil allowed
|
58
|
-
PRE = "
|
58
|
+
PRE = "rc2"
|
59
59
|
|
60
60
|
# The current version of the Net::SSH library as a Version instance
|
61
61
|
CURRENT = new(*[MAJOR, MINOR, TINY, PRE].compact)
|
data/net-ssh.gemspec
CHANGED
@@ -2,17 +2,17 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: net-ssh 3.2.0.
|
5
|
+
# stub: net-ssh 3.2.0.rc2 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "net-ssh"
|
9
|
-
s.version = "3.2.0.
|
9
|
+
s.version = "3.2.0.rc2"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Jamis Buck", "Delano Mandelbaum", "Mikl\u{f3}s Fazekas"]
|
14
14
|
s.cert_chain = ["net-ssh-public_cert.pem"]
|
15
|
-
s.date = "2016-05-
|
15
|
+
s.date = "2016-05-29"
|
16
16
|
s.description = "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
17
|
s.email = "net-ssh@solutious.com"
|
18
18
|
s.extra_rdoc_files = [
|
@@ -32,6 +32,11 @@ module Authentication
|
|
32
32
|
agent(false).connect!
|
33
33
|
end
|
34
34
|
|
35
|
+
def test_connect_should_use_agent_socket_factory_instead_of_factory
|
36
|
+
assert_equal agent.connect!, socket
|
37
|
+
assert_equal agent.connect!(agent_socket_factory), "/foo/bar.sock"
|
38
|
+
end
|
39
|
+
|
35
40
|
def test_connect_should_raise_error_if_connection_could_not_be_established
|
36
41
|
factory.expects(:open).raises(SocketError)
|
37
42
|
assert_raises(Net::SSH::Authentication::AgentNotAvailable) { agent(false).connect! }
|
@@ -213,12 +218,15 @@ module Authentication
|
|
213
218
|
def agent(auto=:connect)
|
214
219
|
@agent ||= begin
|
215
220
|
agent = Net::SSH::Authentication::Agent.new
|
216
|
-
agent.stubs(:
|
221
|
+
agent.stubs(:socket_class).returns(factory)
|
217
222
|
agent.connect! if auto == :connect
|
218
223
|
agent
|
219
224
|
end
|
220
225
|
end
|
221
226
|
|
227
|
+
def agent_socket_factory
|
228
|
+
@agent_socket_factory ||= ->{"/foo/bar.sock"}
|
229
|
+
end
|
222
230
|
end
|
223
231
|
|
224
232
|
end
|
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: 3.2.0.
|
4
|
+
version: 3.2.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jamis Buck
|
@@ -31,7 +31,7 @@ cert_chain:
|
|
31
31
|
s/ZUKye79ELwFYKJOhjW5g725OL3hy+llhEleytwKRwgXFQBPTC4f5UkdxZVVWGH
|
32
32
|
e2C9M1m/2odPZo8h
|
33
33
|
-----END CERTIFICATE-----
|
34
|
-
date: 2016-05-
|
34
|
+
date: 2016-05-29 00:00:00.000000000 Z
|
35
35
|
dependencies:
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: test-unit
|
metadata.gz.sig
CHANGED
Binary file
|