diff options
author | Miklós Fazekas <mfazekas@szemafor.com> | 2022-03-28 07:28:01 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-28 07:28:01 +0200 |
commit | 0666139877d5d005f3f04bc626d1752bce1c3e5a (patch) | |
tree | 09f619c4ff3d4812bc0bc0fb6be115b563ff588a | |
parent | a45f54fe1de434605af0b7195dd9a91bccd2cec5 (diff) | |
parent | a24c285d219d2709b48b7d941e364770ddcc6846 (diff) | |
download | net-ssh-0666139877d5d005f3f04bc626d1752bce1c3e5a.tar.gz |
Merge pull request #850 from boblail/lail/expand-paths-to-identity-agent
Support `~` in the path to the SSH agent's unix socket
-rw-r--r-- | lib/net/ssh/authentication/agent.rb | 4 | ||||
-rw-r--r-- | test/authentication/test_agent.rb | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/lib/net/ssh/authentication/agent.rb b/lib/net/ssh/authentication/agent.rb index ab6dce9..a344626 100644 --- a/lib/net/ssh/authentication/agent.rb +++ b/lib/net/ssh/authentication/agent.rb @@ -88,9 +88,9 @@ module Net if agent_socket_factory agent_socket_factory.call elsif identity_agent - unix_socket_class.open(identity_agent) + unix_socket_class.open(File.expand_path(identity_agent)) elsif ENV['SSH_AUTH_SOCK'] && unix_socket_class - unix_socket_class.open(ENV['SSH_AUTH_SOCK']) + unix_socket_class.open(File.expand_path(ENV['SSH_AUTH_SOCK'])) elsif Gem.win_platform? && RUBY_ENGINE != "jruby" Pageant::Socket.open else diff --git a/test/authentication/test_agent.rb b/test/authentication/test_agent.rb index 65fee73..87247dc 100644 --- a/test/authentication/test_agent.rb +++ b/test/authentication/test_agent.rb @@ -51,6 +51,11 @@ module Authentication agent(false).connect! end + def test_connect_should_expand_path_to_identity_agent + factory.expects(:open).with("#{Dir.home}/path/to/ssh.agent.sock").returns(socket) + agent(false).connect! nil, "~/path/to/ssh.agent.sock" + end + def test_connect_should_use_agent_socket_factory_instead_of_factory assert_equal agent.connect!, socket assert_equal agent.connect!(agent_socket_factory), "/foo/bar.sock" |