feat: Implement public key authentication for server #147
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Changes
New Files
src/server/auth/mod.rs- Auth module exportssrc/server/auth/provider.rs- AuthProvider trait definitionsrc/server/auth/publickey.rs- PublicKeyVerifier implementationModified Files
src/server/mod.rs- Export auth modulesrc/server/config.rs- Add auth configuration optionssrc/server/handler.rs- Integrate auth provider with auth_publickeyImplementation Details
AuthProvider Trait
verify_publickey()- Verify public key authenticationverify_password()- Verify password authentication (placeholder)get_user_info()- Get user information after authuser_exists()- Check if user existsPublicKeyVerifier Features
Configuration Options
Two modes for authorized_keys location:
{dir}/{username}/authorized_keys/home/{user}/.ssh/authorized_keysSecurity Features
Test plan
Closes #126