Filesystem API: Include the ssh-ed25519 public key signature algorithm as an alternative to ssh-rsa.

The `ssh-rsa` signature algorithm is disabled by default as of OpenSSH 8.8, which breaks SSH2 uploads in WordPress on modern systems. `ssh-ed25519` is one of the suggested alternatives, supported since OpenSSH 6.5.

References:
* [https://www.openssh.com/txt/release-8.2 OpenSSH 8.2 release notes]
* [https://www.openssh.com/txt/release-8.7 OpenSSH 8.7 release notes]
* [https://www.openssh.com/txt/release-8.8 OpenSSH 8.8 release notes]

Follow-up to [8865].

Props richybkreckel, dd32.
Fixes #52409.

git-svn-id: https://develop.svn.wordpress.org/trunk@52807 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov 2022-02-27 15:00:58 +00:00
parent 5445ae3ce0
commit 33048b9333

View File

@ -88,7 +88,7 @@ class WP_Filesystem_SSH2 extends WP_Filesystem_Base {
$this->options['public_key'] = $opt['public_key'];
$this->options['private_key'] = $opt['private_key'];
$this->options['hostkey'] = array( 'hostkey' => 'ssh-rsa' );
$this->options['hostkey'] = array( 'hostkey' => 'ssh-rsa,ssh-ed25519' );
$this->keys = true;
} elseif ( empty( $opt['username'] ) ) {