SSH自动输入密码

作者: guozhao | 来源:发表于2017-02-24 23:40 被阅读356次

概述

使用SSH登录服务器,通常分为两步:

  • #ssh username@hostname
  • 系统提示输入密码,用户输入密码;
    登录成功

今天要讨论的如何让SSH自动输入密码。


开始

-设置主机短名称

#vim ~/.ssh/conf ,其内容如下:
- Host host1 HostName IP地址 User 帐号 ServerAliveInterval 300 -

--通过短名称登录

#ssh host1

此时还会提示输入密码。


-自动输入密码

利用expect完成自动输入。
注:Expect是Linux实现与系统自动交互工具

--编写expect脚本

# sudo vim login ,内容如下:
- 1 #!/usr/bin/expect 2 3 set channel [lindex $argv 0] 4 5 6 if { "$channel"=="host1" || "$channel" == "host2" || "$channel" == "host3" } { 7 set passwd "1234" 8 } else { 9 set passwd "6789" 10 } 11 12 spawn ssh $channel 13 14 15 expect { 16 password: { 17 send "$passwd\r" 18 exp_continue 19 } 20 PASSCODE: { 21 send "580928" 22 interact 23 } 24 timeout { 25 send_user "connection timed out\n" 26 exit 27 } 28 eof { 29 send_user "connection to host failed: $expect_out(buffer)" 30 exit 31 } 32 } -

--登录服务器

#./login host1

应该可以成功登录了^^
一条命令就可以登录系统了。


相关文章

网友评论

  • ef0106040b86:用不着这么麻烦,用ssh-copy-id 把本地主机的公钥复制到远程主机的authorized_keys文件上,登录就不需要密码了。
    guozhao: @王一航 为了安全可以考虑写一个接口每次登录的时候验证并得到密码就可以。这只是一个demo。
    王一航: @frogzjx 而且这样把密码明文保存在脚本中容易造成安全问题
    guozhao:@frogzjx 是的,这个主要是针对通道机的

本文标题:SSH自动输入密码

本文链接:https://www.haomeiwen.com/subject/auhgwttx.html