mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-27 22:00:24 +08:00
创建SSH认证私钥时校验私钥内容
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
|||||||
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/grants/grantutils"
|
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/grants/grantutils"
|
||||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||||
"github.com/iwind/TeaGo/actions"
|
"github.com/iwind/TeaGo/actions"
|
||||||
|
"golang.org/x/crypto/ssh"
|
||||||
)
|
)
|
||||||
|
|
||||||
type CreateAction struct {
|
type CreateAction struct {
|
||||||
@@ -50,6 +51,18 @@ func (this *CreateAction) RunPost(params struct {
|
|||||||
if len(params.PrivateKey) == 0 {
|
if len(params.PrivateKey) == 0 {
|
||||||
this.FailField("privateKey", "请输入RSA私钥")
|
this.FailField("privateKey", "请输入RSA私钥")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 验证私钥
|
||||||
|
var err error
|
||||||
|
if len(params.Passphrase) > 0 {
|
||||||
|
_, err = ssh.ParsePrivateKeyWithPassphrase([]byte(params.PrivateKey), []byte(params.Passphrase))
|
||||||
|
} else {
|
||||||
|
_, err = ssh.ParsePrivateKey([]byte(params.PrivateKey))
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
this.Fail("私钥验证失败,请检查格式:" + err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
this.Fail("请选择正确的认证方式")
|
this.Fail("请选择正确的认证方式")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||||
"github.com/iwind/TeaGo/actions"
|
"github.com/iwind/TeaGo/actions"
|
||||||
"github.com/iwind/TeaGo/maps"
|
"github.com/iwind/TeaGo/maps"
|
||||||
|
"golang.org/x/crypto/ssh"
|
||||||
)
|
)
|
||||||
|
|
||||||
type CreatePopupAction struct {
|
type CreatePopupAction struct {
|
||||||
@@ -51,6 +52,18 @@ func (this *CreatePopupAction) RunPost(params struct {
|
|||||||
if len(params.PrivateKey) == 0 {
|
if len(params.PrivateKey) == 0 {
|
||||||
this.FailField("privateKey", "请输入RSA私钥")
|
this.FailField("privateKey", "请输入RSA私钥")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 验证私钥
|
||||||
|
var err error
|
||||||
|
if len(params.Passphrase) > 0 {
|
||||||
|
_, err = ssh.ParsePrivateKeyWithPassphrase([]byte(params.PrivateKey), []byte(params.Passphrase))
|
||||||
|
} else {
|
||||||
|
_, err = ssh.ParsePrivateKey([]byte(params.PrivateKey))
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
this.Fail("私钥验证失败,请检查格式:" + err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
this.Fail("请选择正确的认证方式")
|
this.Fail("请选择正确的认证方式")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||||
"github.com/iwind/TeaGo/actions"
|
"github.com/iwind/TeaGo/actions"
|
||||||
"github.com/iwind/TeaGo/maps"
|
"github.com/iwind/TeaGo/maps"
|
||||||
|
"golang.org/x/crypto/ssh"
|
||||||
)
|
)
|
||||||
|
|
||||||
type UpdateAction struct {
|
type UpdateAction struct {
|
||||||
@@ -83,6 +84,18 @@ func (this *UpdateAction) RunPost(params struct {
|
|||||||
if len(params.PrivateKey) == 0 {
|
if len(params.PrivateKey) == 0 {
|
||||||
this.FailField("privateKey", "请输入RSA私钥")
|
this.FailField("privateKey", "请输入RSA私钥")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 验证私钥
|
||||||
|
var err error
|
||||||
|
if len(params.Passphrase) > 0 {
|
||||||
|
_, err = ssh.ParsePrivateKeyWithPassphrase([]byte(params.PrivateKey), []byte(params.Passphrase))
|
||||||
|
} else {
|
||||||
|
_, err = ssh.ParsePrivateKey([]byte(params.PrivateKey))
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
this.Fail("私钥验证失败,请检查格式:" + err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
this.Fail("请选择正确的认证方式")
|
this.Fail("请选择正确的认证方式")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||||
"github.com/iwind/TeaGo/actions"
|
"github.com/iwind/TeaGo/actions"
|
||||||
"github.com/iwind/TeaGo/maps"
|
"github.com/iwind/TeaGo/maps"
|
||||||
|
"golang.org/x/crypto/ssh"
|
||||||
)
|
)
|
||||||
|
|
||||||
type UpdatePopupAction struct {
|
type UpdatePopupAction struct {
|
||||||
@@ -83,6 +84,18 @@ func (this *UpdatePopupAction) RunPost(params struct {
|
|||||||
if len(params.PrivateKey) == 0 {
|
if len(params.PrivateKey) == 0 {
|
||||||
this.FailField("privateKey", "请输入RSA私钥")
|
this.FailField("privateKey", "请输入RSA私钥")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 验证私钥
|
||||||
|
var err error
|
||||||
|
if len(params.Passphrase) > 0 {
|
||||||
|
_, err = ssh.ParsePrivateKeyWithPassphrase([]byte(params.PrivateKey), []byte(params.Passphrase))
|
||||||
|
} else {
|
||||||
|
_, err = ssh.ParsePrivateKey([]byte(params.PrivateKey))
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
this.Fail("私钥验证失败,请检查格式:" + err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
this.Fail("请选择正确的认证方式")
|
this.Fail("请选择正确的认证方式")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user