Merge "Force use of scp rather than sftp when possible"
This commit is contained in:
commit
bf760f221f
@ -373,9 +373,17 @@ def set_hooks_commit_msg(remote, target_file):
|
||||
userhost = hostname
|
||||
# OS independent target file
|
||||
scp_target_file = target_file.replace(os.sep, "/")
|
||||
|
||||
# Get scp options
|
||||
scp_out = run_command("scp")
|
||||
scp_opts = scp_out[scp_out.index("[") + 2:scp_out.index("]")]
|
||||
|
||||
cmd = ["scp", userhost + ":hooks/commit-msg", scp_target_file]
|
||||
if port is not None:
|
||||
cmd.insert(1, "-P%s" % port)
|
||||
# Force scp protocol if the -O option is available
|
||||
if "O" in scp_opts:
|
||||
cmd.insert(1, "-O")
|
||||
|
||||
if VERBOSE:
|
||||
hook_url = 'scp://%s%s/hooks/commit-msg' \
|
||||
|
15
releasenotes/notes/scp-subsystem-c8d78aa8f7f69f66.yaml
Normal file
15
releasenotes/notes/scp-subsystem-c8d78aa8f7f69f66.yaml
Normal file
@ -0,0 +1,15 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
OpenSSH has deprecated its use of scp/rcp protocol in favor of
|
||||
SFTP, which the embedded Apache mina-sshd in widely-deployed
|
||||
Gerrit versions does not yet support. The default officially
|
||||
changed in OpenSSH 9.0 (some distributions, such as Fedora and
|
||||
CentOS, switched their default behavior to this as early as
|
||||
OpenSSH 8.7 or 8.8), leading to a ``subsystem request failed on
|
||||
channel 0`` error during commit-msg hook retrieval. Now
|
||||
git-review will attempt to detect whether scp's -O option is
|
||||
available to force use of the legacy scp/rcp protocol, and apply
|
||||
it if so. Future git-review versions may change the fallback
|
||||
behavior once an SFTP subsystem is implemented and available for
|
||||
a new Gerrit release.
|
Loading…
x
Reference in New Issue
Block a user