|
@@ -5,7 +5,6 @@ import (
|
|
"encoding/base64"
|
|
"encoding/base64"
|
|
"fmt"
|
|
"fmt"
|
|
"io"
|
|
"io"
|
|
- "io/ioutil"
|
|
|
|
"net"
|
|
"net"
|
|
"os"
|
|
"os"
|
|
"os/user"
|
|
"os/user"
|
|
@@ -19,7 +18,7 @@ import (
|
|
"git.wecise.com/wecise/common/matrix/logger"
|
|
"git.wecise.com/wecise/common/matrix/logger"
|
|
"git.wecise.com/wecise/common/matrix/util"
|
|
"git.wecise.com/wecise/common/matrix/util"
|
|
"golang.org/x/crypto/ssh"
|
|
"golang.org/x/crypto/ssh"
|
|
- "golang.org/x/crypto/ssh/terminal"
|
|
|
|
|
|
+ "golang.org/x/term"
|
|
)
|
|
)
|
|
|
|
|
|
var (
|
|
var (
|
|
@@ -65,9 +64,9 @@ func genSSHConfig(node *Node) *defaultClient {
|
|
|
|
|
|
var pemBytes []byte
|
|
var pemBytes []byte
|
|
if node.KeyPath == "" {
|
|
if node.KeyPath == "" {
|
|
- pemBytes, err = ioutil.ReadFile(path.Join(u.HomeDir, ".ssh/id_rsa"))
|
|
|
|
|
|
+ pemBytes, err = os.ReadFile(path.Join(u.HomeDir, ".ssh/id_rsa"))
|
|
} else {
|
|
} else {
|
|
- pemBytes, err = ioutil.ReadFile(node.KeyPath)
|
|
|
|
|
|
+ pemBytes, err = os.ReadFile(node.KeyPath)
|
|
}
|
|
}
|
|
if err != nil && !os.IsNotExist(err) {
|
|
if err != nil && !os.IsNotExist(err) {
|
|
logger.Error(util.ErrorWithSourceLine(err))
|
|
logger.Error(util.ErrorWithSourceLine(err))
|
|
@@ -105,7 +104,7 @@ func genSSHConfig(node *Node) *defaultClient {
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- b, err := terminal.ReadPassword(int(syscall.Stdin))
|
|
|
|
|
|
+ b, err := term.ReadPassword(int(syscall.Stdin))
|
|
if err != nil {
|
|
if err != nil {
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
@@ -171,7 +170,7 @@ func (c *defaultClient) Login() {
|
|
if strings.Contains(msg, "no supported methods remain") && !strings.Contains(msg, "password") {
|
|
if strings.Contains(msg, "no supported methods remain") && !strings.Contains(msg, "password") {
|
|
fmt.Printf("%s@%s's password:", c.clientConfig.User, host)
|
|
fmt.Printf("%s@%s's password:", c.clientConfig.User, host)
|
|
var b []byte
|
|
var b []byte
|
|
- b, err = terminal.ReadPassword(int(syscall.Stdin))
|
|
|
|
|
|
+ b, err = term.ReadPassword(int(syscall.Stdin))
|
|
if err == nil {
|
|
if err == nil {
|
|
p := string(b)
|
|
p := string(b)
|
|
if p != "" {
|
|
if p != "" {
|
|
@@ -201,10 +200,11 @@ func (c *defaultClient) Login() {
|
|
defer session.Close()
|
|
defer session.Close()
|
|
|
|
|
|
fd := int(os.Stdin.Fd())
|
|
fd := int(os.Stdin.Fd())
|
|
- w, h, err := terminal.GetSize(fd)
|
|
|
|
|
|
+ w, h, err := term.GetSize(fd)
|
|
if err != nil {
|
|
if err != nil {
|
|
logger.Error(util.ErrorWithSourceLine(err))
|
|
logger.Error(util.ErrorWithSourceLine(err))
|
|
- return
|
|
|
|
|
|
+ w = 300
|
|
|
|
+ h = 50
|
|
}
|
|
}
|
|
|
|
|
|
modes := ssh.TerminalModes{
|
|
modes := ssh.TerminalModes{
|
|
@@ -387,7 +387,7 @@ func (c *defaultClient) Login() {
|
|
oh = h
|
|
oh = h
|
|
)
|
|
)
|
|
for {
|
|
for {
|
|
- cw, ch, err := terminal.GetSize(fd)
|
|
|
|
|
|
+ cw, ch, err := term.GetSize(fd)
|
|
if err != nil {
|
|
if err != nil {
|
|
break
|
|
break
|
|
}
|
|
}
|