1
0
mirror of https://github.com/libssh2/libssh2.git synced 2025-12-24 19:37:49 +03:00

Support RSA certificate authentication (#710)

* Adding support for signed RSA keys and unit test

Credit:
Sandeep Bansal
This commit is contained in:
Sandeep Bansal
2022-07-28 08:57:34 -07:00
committed by GitHub
parent 7483edfada
commit 4b21e49d9d
12 changed files with 163 additions and 4 deletions

1
.gitignore vendored
View File

@@ -36,3 +36,4 @@ libssh2.pc
TAGS
*~
.DS_Store
build

View File

@@ -451,6 +451,18 @@ static const LIBSSH2_HOSTKEY_METHOD hostkey_method_ssh_rsa_sha2_512 = {
#endif /* LIBSSH2_RSA_SHA2 */
static const LIBSSH2_HOSTKEY_METHOD hostkey_method_ssh_rsa_cert = {
"ssh-rsa-cert-v01@openssh.com",
MD5_DIGEST_LENGTH,
NULL,
hostkey_method_ssh_rsa_initPEM,
hostkey_method_ssh_rsa_initPEMFromMemory,
NULL,
hostkey_method_ssh_rsa_signv,
NULL, /* encrypt */
hostkey_method_ssh_rsa_dtor,
};
#endif /* LIBSSH2_RSA */
#if LIBSSH2_DSA
@@ -1246,6 +1258,7 @@ static const LIBSSH2_HOSTKEY_METHOD *hostkey_methods[] = {
&hostkey_method_ssh_rsa_sha2_256,
#endif /* LIBSSH2_RSA_SHA2 */
&hostkey_method_ssh_rsa,
&hostkey_method_ssh_rsa_cert,
#endif /* LIBSSH2_RSA */
#if LIBSSH2_DSA
&hostkey_method_ssh_dss,

View File

@@ -1150,6 +1150,12 @@ libssh2_userauth_hostbased_fromfile_ex(LIBSSH2_SESSION *session,
static int plain_method_len(const char *method, size_t method_len)
{
if(!strncmp("ssh-rsa-cert-v01@openssh.com",
method,
method_len)) {
return 7;
}
if(!strncmp("ecdsa-sha2-nistp256-cert-v01@openssh.com",
method,
method_len) ||

View File

@@ -140,6 +140,7 @@ if(CRYPTO_BACKEND STREQUAL "OpenSSL")
public_key_auth_succeeds_with_correct_ed25519_key_from_mem
public_key_auth_succeeds_with_correct_ecdsa_key
public_key_auth_succeeds_with_correct_signed_ecdsa_key
public_key_auth_succeeds_with_correct_signed_rsa_key
)
endif()
endif()

View File

@@ -416,4 +416,4 @@ void stop_openssh_fixture()
int open_socket_to_openssh_server()
{
return open_socket_to_container(running_container_id);
}
}

View File

@@ -33,7 +33,7 @@
# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
# OF SUCH DAMAGE.
FROM debian:jessie
FROM debian:bullseye
RUN apt-get update \
&& apt-get install -y openssh-server \
@@ -60,17 +60,27 @@ RUN chmod 600 /etc/ssh/ssh_host_ed25519_key
COPY ca_ecdsa.pub /tmp/etc/ssh/ca_ecdsa.pub
RUN mv /tmp/etc/ssh/ca_ecdsa.pub /etc/ssh/ca_ecdsa.pub
RUN chmod 600 /etc/ssh/ca_ecdsa.pub
RUN cp /etc/ssh/ca_ecdsa.pub /etc/ssh/ca_main.pub
RUN chmod 600 /etc/ssh/ca_main.pub
COPY ca_ecdsa /tmp/etc/ssh/ca_ecdsa
RUN mv /tmp/etc/ssh/ca_ecdsa /etc/ssh/ca_ecdsa
RUN chmod 600 /etc/ssh/ca_ecdsa
COPY ca_rsa.pub /tmp/etc/ssh/ca_rsa.pub
RUN mv /tmp/etc/ssh/ca_rsa.pub /etc/ssh/ca_rsa.pub
RUN cat /etc/ssh/ca_rsa.pub >> /etc/ssh/ca_main.pub
COPY ca_rsa /tmp/etc/ssh/ca_rsa
RUN mv /tmp/etc/ssh/ca_rsa /etc/ssh/ca_rsa
RUN chmod 600 /etc/ssh/ca_rsa
RUN adduser --disabled-password --gecos 'Test user for libssh2 integration tests' libssh2
RUN echo 'libssh2:my test password' | chpasswd
RUN sed -i 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/' /etc/ssh/sshd_config
RUN echo "TrustedUserCAKeys /etc/ssh/ca_ecdsa.pub" >> /etc/ssh/sshd_config
RUN echo "TrustedUserCAKeys /etc/ssh/ca_main.pub" >> /etc/ssh/sshd_config
RUN echo "PubkeyAcceptedKeyTypes=+ssh-dss" >> /etc/ssh/sshd_config
# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

View File

@@ -0,0 +1,38 @@
-----BEGIN OPENSSH PRIVATE KEY-----
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
+zcpm8rKEYGT0AAAAGY2FfcnNhAQIDBAU=
-----END OPENSSH PRIVATE KEY-----

View File

@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDEiBsRlsihCg0nJGNqURhszCZw1FwZmDpkD64L6HFf2U/GFXFgDBtYJZ8zdgua+RA9F/QNhq14OUemJX39HggAox/Acwg1vKPm6WPYAb3DMyzXT4ws32SbFd5ld/sQrqJUeMxaFLu1f02eY0UttQe4+nMjoM4Me98Qho7TzgpDIgn9nls42Sjt6KM9muqTBIVv4USwi9IsFn+54e0CEjfgiFyU8/8bH6vp1rtMPA6m4vuidyt2pP7PHFnUnikQGsaG4ldO/D/G0FFtMqPXeC1wQXI5RHnRns9TiI6Ep3r3h64ZI5iBYZeG16Fk+nuGvtp+WLWE5m01vfEHc5o+p09j+Ni1mQ5pmUq3AOM/MZMh+eCkTstnCyng/bHEZTIKQi1nnu694Mcq8W1v34wgMyBN3bvE65NhjIdLubnHvDgzVn127wjPEdeVD9ShtACxNS4a6xJCWg6llHVyzezqnj68umXre02MsXLbFikV/fEvUOXUp/rDeo+LJizk2bHAlyk= ca_rsa

49
tests/signed_key_rsa Normal file
View File

@@ -0,0 +1,49 @@
-----BEGIN OPENSSH PRIVATE KEY-----
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
-----END OPENSSH PRIVATE KEY-----

View File

@@ -0,0 +1 @@
ssh-rsa-cert-v01@openssh.com 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 signed_key_rsa

1
tests/signed_key_rsa.pub Normal file
View File

@@ -0,0 +1 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCwMtW6rz83hgCKqV1Xf2KPgtWA5pkVA3jY4CosgWsV8rjwSpq+AMmB1wzVdTT/zrEEyy2iLoIwiAXQ7wlpo1QQWklnChIdlbaxg+F0UullsYIYoExrL+9YMwRGwmd00yIe/POHlBCa10qeBWfdMmjt5ZDlakPVYwFjvK5lZ0UW1FM1ucqX5HoIPhVONfReZonCP+jwvin44IMaqtdaSy4k71Qq7RuRbMYeTzpNaxv2CbxubvY5E7wlDrT47e25Dn/XeoV2VEX9T87ZAMnwmeyDbKW2Dv48l4Zze3Y8veUojfH3NlA/F9+1PwdTlqKsf45E/VVLyTTtn1KJy2hLyuav8Qt6Wgew41G2F9alDJab11urcogRiHyI/oPo0c6Km1vieF7IfW72yE5TFTZtbzSNS+W0GCo1xh4TUx8bBNXHO4+mDFt2gNCgX+Hf64FlPqM0kaZSUtBVKrWSupgTbMSXfHbRV5NJvSdGpPUWeFD1ifxYcPhxwJlznTXVQumEglDueIMsnE8yKEYjREtuao8/r9+ORtqf9OPZsT9j+bwROevLFnKZkzfD9xYQyU2aMrRDuo8R6SD7SiI6tXRwlohdflXA6ng9RTNyqVROQDOJ94bGPD5b4Bbnm31s2GhhWjoByQGlkNW4BRDEJmgG9sE8ztAxl7d8CV2V93BOisaPkw== signed_key_rsa

View File

@@ -0,0 +1,38 @@
#include "session_fixture.h"
#include <libssh2.h>
#include <stdio.h>
/* configured in Dockerfile */
static const char *USERNAME = "libssh2";
static const char *KEY_FILE_PRIVATE = "signed_key_rsa";
static const char *KEY_FILE_PUBLIC = "signed_key_rsa-cert.pub";
int test(LIBSSH2_SESSION *session)
{
int rc;
const char *userauth_list =
libssh2_userauth_list(session, USERNAME, strlen(USERNAME));
if(userauth_list == NULL) {
print_last_session_error("libssh2_userauth_list");
return 1;
}
if(strstr(userauth_list, "publickey") == NULL) {
fprintf(stderr, "'publickey' was expected in userauth list: %s\n",
userauth_list);
return 1;
}
rc = libssh2_userauth_publickey_fromfile_ex(
session, USERNAME, strlen(USERNAME), KEY_FILE_PUBLIC, KEY_FILE_PRIVATE,
NULL);
if(rc != 0) {
print_last_session_error("libssh2_userauth_publickey_fromfile_ex");
return 1;
}
return 0;
}