Skip to content

Commit

Permalink
SSH proxy: allow using a bare hostname without root@
Browse files Browse the repository at this point in the history
Otherwise we can't connect to the proxy as the local user and we can't
use ~/.ssh/config to set User directives.

Defaulting to root@ is hard to deprecate without introducing new config.
A clean break is probably clearest.
  • Loading branch information
jeremy committed Oct 3, 2024
1 parent 81f3508 commit 0e4f175
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
4 changes: 2 additions & 2 deletions lib/kamal/configuration/docs/ssh.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ ssh:

# Proxy host
#
# Specified in the form <host> or <user>@<host>:
proxy: root@proxy-host
# Specified in the form <host> or <user>@<host>
proxy: proxy-host

# Proxy command
#
Expand Down
6 changes: 3 additions & 3 deletions lib/kamal/configuration/ssh.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ def port
end

def proxy
if (proxy = ssh_config["proxy"])
Net::SSH::Proxy::Jump.new(proxy.include?("@") ? proxy : "root@#{proxy}")
elsif (proxy_command = ssh_config["proxy_command"])
if proxy = ssh_config["proxy"]
Net::SSH::Proxy::Jump.new(proxy)
elsif proxy_command = ssh_config["proxy_command"]
Net::SSH::Proxy::Command.new(proxy_command)
end
end
Expand Down
2 changes: 1 addition & 1 deletion test/configuration/ssh_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class ConfigurationSshTest < ActiveSupport::TestCase

test "ssh options with proxy host" do
config = Kamal::Configuration.new(@deploy.tap { |c| c.merge!(ssh: { "proxy" => "1.2.3.4" }) })
assert_equal "root@1.2.3.4", config.ssh.options[:proxy].jump_proxies
assert_equal "1.2.3.4", config.ssh.options[:proxy].jump_proxies
end

test "ssh options with proxy host and user" do
Expand Down

0 comments on commit 0e4f175

Please sign in to comment.