Chciałbym, aby sshd zweryfikował klucz publiczny użytkowników, a następnie poprosił o podanie hasła, a nie tylko jednego lub drugiego. czy to możliwe?
źródło
Chciałbym, aby sshd zweryfikował klucz publiczny użytkowników, a następnie poprosił o podanie hasła, a nie tylko jednego lub drugiego. czy to możliwe?
Obecnie nie. Ale są pływające łaty, które powinny to dodać.
Jest to wreszcie dostępne od wersji OpenSSH 6.2 (wydanej w marcu 2013 r.), Przy użyciu AuthenticationMethods
opcji konfiguracji.
Na przykład możesz dodać następujący wiersz, sshd_config
aby wymagać zarówno uwierzytelnienia za pomocą klucza publicznego, jak i hasła:
AuthenticationMethods publickey,password
Po zalogowaniu się ssh
i scp
najpierw wykonać uwierzytelnianie klucza publicznego, a następnie monit o hasło:
$ ssh [email protected]
Authenticated with partial success.
[email protected]'s password:
Jeśli masz hasło do pliku klucza prywatnego, oczywiście najpierw zostaniesz o to poproszony. Przykład użycia PuTTY :
Using username "user".
Authenticating with public key "rsa-key-20131221-user"
Passphrase for key "rsa-key-20131221-user":
Further authentication required
[email protected]'s password:
OpenSSH w RHEL / CentOS 6.3 obsługuje teraz tę funkcję, chociaż nie mogę znaleźć jej wspomnianej w informacjach o wydaniu OpenSSH. Z informacji o wersji RHEL :
SSH można teraz skonfigurować tak, aby wymagało wielu sposobów uwierzytelnienia (podczas gdy wcześniej SSH dopuszczał wiele sposobów uwierzytelnienia, z których tylko jeden był wymagany do pomyślnego logowania); na przykład zalogowanie się na maszynie obsługującej SSH wymaga podania zarówno hasła, jak i klucza publicznego. W pliku można skonfigurować opcje
RequiredAuthentications1
i, aby określić uwierzytelnienia wymagane do pomyślnego zalogowania. Na przykład:RequiredAuthentications2
/etc/ssh/sshd_config
~]# echo "RequiredAuthentications2 publickey,password" >> /etc/ssh/sshd_config
Więcej informacji na temat wyżej wymienionych
/etc/ssh/sshd_config
opcji można znaleźć nasshd_config
stronie podręcznika użytkownika .
Jest to możliwe, ale w sposób kludgish i ograniczony. Najpierw zezwalasz tylko na uwierzytelnianie za pomocą klucza publicznego. Następnie /etc/ssh/sshd_config
dodaj ForceCommand
skrypt uruchamiający skrypt, który sprawdzi hasło.
Skrypt złamie SFTP, chyba że sprawdzisz, czy polecenie to sftp i przepuścisz je bez hasła.
Nigdy tego nie próbowałem, aby ktoś mógł zobaczyć więcej problemów.