详解shell实现SSH自动登陆


当前第2页 返回上一页

以下是一个完成版的脚本 test.sh:

1

2

3

4

5

6

7

8

#!/usr/bin/expect                   // 指定shebang

set timeout 3                       // 设定超时时间为3秒

spawn ssh user_name@172.***.***.*** // fork一个子进程执行ssh命令

expect "*password*"                 // 期待匹配到 'user_name@ip_string's password:'

send "my_password\r"                // 向命令行输入密码并回车

send "sudo -s\r"

send "cd /data/logs\r"              // 帮我切换到常用的工作目录

interact                            // 允许用户与命令行交互

执行 sudo chmod +x ./test.sh命令给shell脚本添加执行权限;

运行 ./test.sh命令,一键登陆成功!

简单的几个命令,,搭配起来解决了与命令行的交互问题后,很多复杂的功能也不在话下了~

alias别名

脚本完成了,可是还是有些小瑕疵:

输入./file_name.sh命令太长。。。

只能在脚本目录中才能执行,不然使用绝对路径输出的命令更长。

这里我们想到了linux的alias命令:

alias命令:

alias命令使用方式为 alias alias_name="ori_command",将alias_name设置为ori_command的别名,这样我们输入执行alias_name,就相当于执行了ori_command;

可是,我们会发现,当你关闭当前shell后,再打开一个shell窗口,再使用alias_name,系统提示command not found;

有没有能保持命令的方式呢?编辑bash_profile文件。

bash_profile文件

我们编辑bash_profile文件,此文件会在终端窗口创建的时候首先执行一次,所以可以帮我们再设置一次别名;

执行命令vim ~./bash_profile,在文件内部添加:

1

alias alias_name="/root_dir/../file_name.sh

保存后,再使用 . ~./bash_profilesource ~./bash_profile 在当前脚本执行一遍设置别名命令,完成设置;

这样,我们无论在哪个目录,只要输入alias_name命令,回车,真正的一键登陆!

以上就是详解shell实现SSH自动登陆的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

linux无法连接ssh

重启ssh服务的命令是什么

一文读懂shell编程三剑客之一的sed命令

如何使用ssh从服务器下载文件

shell关系运算符介绍

centos系统普通用户无法登录ssh

shell脚本命令示例

有关linux中shell内置判断语句的介绍

centos如何安装ssh?

一文读懂shell编程三剑客之一的sed命令

更多相关阅读请进入《shell》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...