1. ssh 工具登陆(实际开发中最常见)
推荐xshell,免密登陆参考:Xshell配置ssh免密码登录-密钥公钥(Public key)
2. windows terminal
安装 openssh,貌似安装 git 就会有,用 ssh-keygen 生成一对密钥使用命令 ssh root@127.0.0.1, root 为登陆的用户名,127.0.0.1 替换为登陆远程机器的地址在远程机器上 ~./.ssh/authorized_keys 加上本机的公钥 id_rsa.pub,就可免密登陆
3. golang 代码
func main()
password
:= "youpassword"
addr
:= "106.12.40.250:22"
auth
:= make([]ssh
.AuthMethod
, 0)
auth
= append(auth
, ssh
.Password(password
))
config
:= &ssh
.ClientConfig
{User
: "root", Auth
: auth
,
HostKeyCallback
: func(hostname
string, remote net
.Addr
, key ssh
.PublicKey
) error {
return nil
}}
client
, err
:= ssh
.Dial("tcp", addr
, config
)
if err
!= nil {
log
.Fatal(err
)
return
}
defer client
.Close()
session
, err
:= client
.NewSession()
if err
!= nil {
log
.Fatal(err
)
return
}
defer session
.Close()
session
.Stdout
= os
.Stdout
session
.Stderr
= os
.Stderr
session
.Stdin
= os
.Stdin
modes
:= ssh
.TerminalModes
{
ssh
.ECHO
: 0,
ssh
.TTY_OP_ISPEED
: 14400,
ssh
.TTY_OP_OSPEED
: 14400,
}
if err
= session
.RequestPty("xterm", 25, 80, modes
); err
!= nil {
log
.Fatal(err
)
return
}
if err
= session
.Shell(); err
!= nil {
log
.Fatal(err
)
return
}
if err
= session
.Wait(); err
!= nil {
log
.Fatal(err
)
return
}
}
参考:http://www.cnblogs.com/tianyajuanke/p/5355756.html