This commit is contained in:
parent
32890da29f
commit
6e13923225
@ -17,7 +17,6 @@ func CreateSSHPublicKey(k *model.SSHPublicKey) (error, bool) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err, false
|
return err, false
|
||||||
}
|
}
|
||||||
k.KeyStr = string(pubKey.Marshal())
|
|
||||||
k.Fingerprint = ssh.FingerprintSHA256(pubKey)
|
k.Fingerprint = ssh.FingerprintSHA256(pubKey)
|
||||||
k.AddedTime = time.Now()
|
k.AddedTime = time.Now()
|
||||||
k.LastUsedTime = k.AddedTime
|
k.LastUsedTime = k.AddedTime
|
||||||
|
@ -6,6 +6,7 @@ import (
|
|||||||
"github.com/alist-org/alist/v3/server/common"
|
"github.com/alist-org/alist/v3/server/common"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
type SSHKeyAddReq struct {
|
type SSHKeyAddReq struct {
|
||||||
@ -30,7 +31,7 @@ func AddMyPublicKey(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
key := &model.SSHPublicKey{
|
key := &model.SSHPublicKey{
|
||||||
Title: req.Title,
|
Title: req.Title,
|
||||||
KeyStr: req.Key,
|
KeyStr: strings.TrimSpace(req.Key),
|
||||||
UserId: userObj.ID,
|
UserId: userObj.ID,
|
||||||
}
|
}
|
||||||
err, parsed := op.CreateSSHPublicKey(key)
|
err, parsed := op.CreateSSHPublicKey(key)
|
||||||
|
@ -113,11 +113,15 @@ func (d *SftpDriver) PublicKeyAuth(conn ssh.ConnMetadata, key ssh.PublicKey) (*s
|
|||||||
}
|
}
|
||||||
marshal := string(key.Marshal())
|
marshal := string(key.Marshal())
|
||||||
for _, sk := range keys {
|
for _, sk := range keys {
|
||||||
if marshal == sk.KeyStr {
|
if marshal != sk.KeyStr {
|
||||||
sk.LastUsedTime = time.Now()
|
pubKey, _, _, _, e := ssh.ParseAuthorizedKey([]byte(sk.KeyStr))
|
||||||
_ = op.UpdateSSHPublicKey(&sk)
|
if e != nil || marshal != string(pubKey.Marshal()) {
|
||||||
return nil, nil
|
continue
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
sk.LastUsedTime = time.Now()
|
||||||
|
_ = op.UpdateSSHPublicKey(&sk)
|
||||||
|
return nil, nil
|
||||||
}
|
}
|
||||||
return nil, errors.New("public key refused")
|
return nil, errors.New("public key refused")
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user