|
@@ -73,20 +73,21 @@ func sqlCommonValidateUserAndPubKey(username string, pubKey string) (User, error
|
|
|
logger.Warn(logSender, "error authenticating user: %v, error: %v", username, err)
|
|
|
return user, err
|
|
|
}
|
|
|
- if len(user.PublicKey) > 0 {
|
|
|
- storedPubKey, _, _, _, err := ssh.ParseAuthorizedKey([]byte(user.PublicKey))
|
|
|
+ if len(user.PublicKey) == 0 {
|
|
|
+ return user, errors.New("Invalid credentials")
|
|
|
+ }
|
|
|
+
|
|
|
+ for i, k := range strings.Split(user.PublicKey, "\n") {
|
|
|
+ storedPubKey, _, _, _, err := ssh.ParseAuthorizedKey([]byte(k))
|
|
|
if err != nil {
|
|
|
- logger.Warn(logSender, "error parsing stored public key for user %v: %v", username, err)
|
|
|
+ logger.Warn(logSender, "error parsing stored public key %d for user %v: %v", i, username, err)
|
|
|
return user, err
|
|
|
}
|
|
|
- if string(storedPubKey.Marshal()) != pubKey {
|
|
|
- err = errors.New("Invalid credentials")
|
|
|
- return user, err
|
|
|
+ if string(storedPubKey.Marshal()) == pubKey {
|
|
|
+ return user, nil
|
|
|
}
|
|
|
- } else {
|
|
|
- err = errors.New("Invalid credentials")
|
|
|
}
|
|
|
- return user, err
|
|
|
+ return user, errors.New("Invalid credentials")
|
|
|
}
|
|
|
|
|
|
func sqlCommonGetUserByID(ID int64) (User, error) {
|