Skip to content

Commit c6cb4ad

Browse files
authored
Merge pull request #16 from willis-yang/dev0128_changessh
fix(*) fix ssh connect bug
2 parents 2449f2e + f5d15a3 commit c6cb4ad

File tree

2 files changed

+5
-11
lines changed

2 files changed

+5
-11
lines changed

utils/ssh.go

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"errors"
55
"fmt"
66
"io"
7-
"os"
87
"time"
98

109
"golang.org/x/crypto/ssh"
@@ -18,14 +17,9 @@ type SSHManager struct {
1817
stdin io.WriteCloser
1918
}
2019

21-
func loadPrivateKey(keyPath, passphrase string) (ssh.AuthMethod, error) {
22-
keyData, err := os.ReadFile(keyPath)
23-
if err != nil {
24-
return nil, fmt.Errorf("read private key file failed: %w", err)
25-
}
26-
20+
func loadPrivateKey(keyData []byte, passphrase string) (ssh.AuthMethod, error) {
2721
var signer ssh.Signer
28-
22+
var err error
2923
if passphrase == "" {
3024
signer, err = ssh.ParsePrivateKey(keyData)
3125
if err != nil {
@@ -42,8 +36,8 @@ func loadPrivateKey(keyPath, passphrase string) (ssh.AuthMethod, error) {
4236
return ssh.PublicKeys(signer), nil
4337
}
4438

45-
func NewSSHManager(host, port, user, keyPath string, timeout time.Duration) (*SSHManager, error) {
46-
authMethod, err := loadPrivateKey(keyPath, "")
39+
func NewSSHManager(host, port, user string, keyData []byte, timeout time.Duration) (*SSHManager, error) {
40+
authMethod, err := loadPrivateKey(keyData, "")
4741
if err != nil {
4842
return nil, fmt.Errorf("load private key error: %w", err)
4943
}

utils/ssh_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func TestNewSSHManager(t *testing.T) {
3232
}
3333
for _, tt := range tests {
3434
t.Run(tt.name, func(t *testing.T) {
35-
connect, err := NewSSHManager(tt.args.host, tt.args.port, tt.args.user, tt.args.keyPath, 30*time.Second)
35+
connect, err := NewSSHManager(tt.args.host, tt.args.port, tt.args.user, []byte("keyinfo"), 30*time.Second)
3636
if (err != nil) != tt.wantErr {
3737
t.Errorf("NewSSHManager() error = %v, wantErr %v", err, tt.wantErr)
3838
return

0 commit comments

Comments
 (0)