使用 ssh 登陆 linux 的的几种方式

    xiaoxiao2022-07-12  140

    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, //需要验证服务端,不做验证返回nil就可以,点击HostKeyCallback看源码就知道了 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

    最新回复(0)