ssh 配置不用手动输入用户密码直接登录

需要3个东西
1. 安装expect
2. autossh
3. 执行脚本

sudo apt-get install expect

====================================================
# autossh
#!/usr/bin/expect -f
set timeout 30
set server [lindex $argv 0]
set user [lindex $argv 1]
set pass [lindex $argv 2]
set rpass [lindex $argv 3]
send_user "connecting to $server\n"
spawn ssh $user@$server
expect {
  "> " { }
  "$ " { }
  "assword:" {
        send "$pass\r"
        expect {
          "> " { }
          "$ " { }
          "# " { }
        }
  }
  "(yes/no)" {
        send "yes\r"
        expect {
          "> " { }
          "$ " { }
          "#" { }
        }
  }
  default {
  }
}
if {$user!="root"} {
send "su\r"
expect {
    "> " {}
    "$ " {}
    "# " {}
    "口令" {
send "$rpass\r"
        expect {
          "> " { }
          "$ " { }
          "# " { }
        }
     }
    "assword:" {
send "$rpass\r"
        expect {
          "> " { }
          "$ " { }
          "# " { }
        }

    }
}
} else {
send "ls\r"
}
#expect "(yes/no)"send "yes\r"
#expect "assword:"send "$pass\r"
#send_user "finished\r"
interact


=============================================
#ssh-www-login

/bin/autossh ip 用户 密码

=================================================
赋予可读权限
sudo chmod 666 autossh
sudo chmod 666 ssh-www-login

sudo chmod +x autossh
sudo chmod +x ssh-www-login


为了能够全局执行命令,需要把这两个文件添加到系统环境里

============================================================

另外一种方式:

scp ~/.ssh/id_rsa.pub 用户名@你的服务器的ip:~/.ssh/authorized_keys

猜你喜欢

转载自amspring.iteye.com/blog/2160685
今日推荐