borg: don't hardcode ssh port default (DEBBUG-993951)

Adding the port parameter to the borg handler with a default value of 22
is causing issues for users who had been using the standard ssh config
file to set the remote port, since the -p cli argument overrides the
configuration. This removes the default port number and only uses it in
the connection string if defined.
This commit is contained in:
Jérôme Charaoui 2023-02-11 23:34:32 -05:00
parent 6c90a54609
commit f41ff295cc
No known key found for this signature in database
GPG Key ID: 69C52F658E988542
3 changed files with 14 additions and 14 deletions

View File

@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed ### Changed
- [borg] don't hardcode ssh port default (DEBBUG-993951)
- [core] allow for disabling reports by email - [core] allow for disabling reports by email
### Fixed ### Fixed

View File

@ -41,7 +41,7 @@ getconf ignore_missing
setsection dest setsection dest
getconf user getconf user
getconf host getconf host
getconf port 22 getconf port
getconf directory getconf directory
# strip trailing / # strip trailing /
directory=${directory%/} directory=${directory%/}
@ -69,7 +69,7 @@ fi
if [ "$host" != "localhost" ]; then if [ "$host" != "localhost" ]; then
[ -n "$user" ] || fatal "Destination user not set" [ -n "$user" ] || fatal "Destination user not set"
[ -n "$host" ] || fatal "Destination host not set" [ -n "$host" ] || fatal "Destination host not set"
execstr_repository="ssh://${user}@${host}:${port}${directory}" execstr_repository="ssh://${user}@${host}${port:+:${port}}${directory}"
else else
execstr_repository="$directory" execstr_repository="$directory"
fi fi
@ -104,8 +104,8 @@ fi
# check the connection at the source and destination # check the connection at the source and destination
[ -n "$test" ] || test=0 [ -n "$test" ] || test=0
if [ "$host" != "localhost" ] && ([ "$testconnect" = "yes" ] || [ "${test}" -eq 1 ]); then if [ "$host" != "localhost" ] && ([ "$testconnect" = "yes" ] || [ "${test}" -eq 1 ]); then
debug "ssh $sshoptions -o PasswordAuthentication=no $host -p $port -l $user 'echo -n 1'" debug "ssh $sshoptions -o PasswordAuthentication=no ${host}${port:+ -p ${port}} -l $user 'echo -n 1'"
local ret=`ssh $sshoptions -o PasswordAuthentication=no $host -p $port -l $user 'echo -n 1'` local ret=`ssh $sshoptions -o PasswordAuthentication=no ${host}${port:+ -p ${port}} -l $user 'echo -n 1'`
if [ "$ret" = 1 ]; then if [ "$ret" = 1 ]; then
debug "Connected to $host as $user successfully" debug "Connected to $host as $user successfully"
else else

View File

@ -28,7 +28,6 @@ cache_directory =
[dest] [dest]
user = user =
host = localhost host = localhost
port = 22
directory = ${BN_BACKUPDIR}/testborg directory = ${BN_BACKUPDIR}/testborg
archive = archive =
compression = lz4 compression = lz4
@ -243,8 +242,8 @@ finish_borg() {
setconfig dest user "$BN_REMOTEUSER" setconfig dest user "$BN_REMOTEUSER"
setconfig dest host "$BN_REMOTEHOST" setconfig dest host "$BN_REMOTEHOST"
testaction testaction
greplog "Debug: ssh\s\+-o PasswordAuthentication=no ${BN_REMOTEHOST} -p 22 -l ${BN_REMOTEUSER} 'echo -n 1'" greplog "Debug: ssh\s\+-o PasswordAuthentication=no ${BN_REMOTEHOST} -l ${BN_REMOTEUSER} 'echo -n 1'"
greplog 'Debug: executing borg create$' "\bssh://${BN_REMOTEUSER}@${BN_REMOTEHOST}:22${BN_BACKUPDIR}/testborg::" greplog 'Debug: executing borg create$' "\bssh://${BN_REMOTEUSER}@${BN_REMOTEHOST}${BN_BACKUPDIR}/testborg::"
} }
@test "check config parameter dest/host" { @test "check config parameter dest/host" {
@ -258,18 +257,18 @@ finish_borg() {
setconfig dest user "$BN_REMOTEUSER" setconfig dest user "$BN_REMOTEUSER"
setconfig dest host "$BN_REMOTEHOST" setconfig dest host "$BN_REMOTEHOST"
testaction testaction
greplog "Debug: ssh\s\+-o PasswordAuthentication=no ${BN_REMOTEHOST} -p 22 -l ${BN_REMOTEUSER} 'echo -n 1'" greplog "Debug: ssh\s\+-o PasswordAuthentication=no ${BN_REMOTEHOST} -l ${BN_REMOTEUSER} 'echo -n 1'"
greplog 'Debug: executing borg create$' "\bssh://${BN_REMOTEUSER}@${BN_REMOTEHOST}:22${BN_BACKUPDIR}/testborg::" greplog 'Debug: executing borg create$' "\bssh://${BN_REMOTEUSER}@${BN_REMOTEHOST}${BN_BACKUPDIR}/testborg::"
} }
@test "check config parameter dest/port" { @test "check config parameter dest/port" {
# absent parameter, defaults to 22 # absent parameter, port not specified
setconfig dest user "$BN_REMOTEUSER" setconfig dest user "$BN_REMOTEUSER"
setconfig dest host "$BN_REMOTEHOST" setconfig dest host "$BN_REMOTEHOST"
delconfig dest port delconfig dest port
testaction testaction
greplog "Debug: ssh\s\+ -o PasswordAuthentication=no ${BN_REMOTEHOST} -p 22 -l ${BN_REMOTEUSER} 'echo -n 1'" greplog "Debug: ssh\s\+-o PasswordAuthentication=no ${BN_REMOTEHOST} -l ${BN_REMOTEUSER} 'echo -n 1'"
greplog 'Debug: executing borg create$' "\bssh://${BN_REMOTEUSER}@${BN_REMOTEHOST}:22${BN_BACKUPDIR}/testborg::" greplog 'Debug: executing borg create$' "\bssh://${BN_REMOTEUSER}@${BN_REMOTEHOST}${BN_BACKUPDIR}/testborg::"
# defined parameter # defined parameter
setconfig dest port 7722 setconfig dest port 7722
@ -385,8 +384,8 @@ finish_borg() {
@test "verify remote backup with encryption" { @test "verify remote backup with encryption" {
export BORG_PASSPHRASE="123foo" export BORG_PASSPHRASE="123foo"
run borg extract --dry-run "ssh://${BN_REMOTEUSER}@${BN_REMOTEHOST}:22${BN_BACKUPDIR}/testborg::testarchive" run borg extract --dry-run "ssh://${BN_REMOTEUSER}@${BN_REMOTEHOST}${BN_BACKUPDIR}/testborg::testarchive"
[ "$status" -eq 2 ] [ "$status" -eq 2 ]
export BORG_PASSPHRASE="123test" export BORG_PASSPHRASE="123test"
borg extract --dry-run "ssh://${BN_REMOTEUSER}@${BN_REMOTEHOST}:22${BN_BACKUPDIR}/testborg::testarchive" borg extract --dry-run "ssh://${BN_REMOTEUSER}@${BN_REMOTEHOST}${BN_BACKUPDIR}/testborg::testarchive"
} }