使用 expect 脚本实现 SSH 自动登陆服务器
又学了一个小招,使用 expect 脚本语言实现 ssh 自动连接到服务器,可以自动输入密码。因为每次使用 ssh root@xx.xx.xx.xx 连接服务器,都要手动输入一遍密码,有没有办法自动输入密码呢?
在网上搜索了一下,果然有办法,有一种脚本语言 expect ,它的作用就是能与交互式程序进行“可程序化”会话,比如自动输入密码,碰到”password”字符就会自动输入密码。
首先要安装 expect 脚本程序,不过在 Macbook 中自带了。比如 CentOS 的机器,可以使用 yum install expect 的方式安装。
这个简单的小脚本 ali.exp 如下(注意脚本文件格式是 exp ):
#!/usr/bin/expect
spawn ssh root@112.xx.xx.47
expect "password:"
send "A0000223456700\r"
interact
这样一来,把 ali.exp 文件设为可执行的之后,就可以 ./ali.exp 运行脚本,自动就连上服务器了。
spawn 后面就是要执行的 shell 命令,expect 是捕获要等待输入的字符,send 是自动输入的内容,注意要 “\r” 表示换行以确认输入。
那么,这个脚本语言可以利用到很多地方了,在 Linux 下,经常需要键入内容的脚本,可以考虑用 expect 来实现自动化交互式的脚本来替代人工重复的活动。
(本文小谈博客原创,转载需注明出处!本文网址:http://blog.tanteng.me/2016/08/expcet-ssh-...)
存密码多不安全,快用密钥认证吧.
参见:SSH_keys
另外,配置了别名后登陆不能更爽