ssh免密码自动登陆 expect

本文详细介绍了如何在MacOS系统中使用expect脚本实现免密码SSH登录远程服务器的过程。首先,通过下载和安装tcl与expect软件包,确保系统具备运行expect脚本的能力。接着,创建并配置expect脚本来自动处理SSH登录过程中的密码输入,从而实现免密登录。最后,通过在.bash_profile中设置alias简化命令调用,提高日常操作效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先:sh安装expect,根据INSTALL,README,要装expect现状tcl(另一个包),http://www.tcl.tk/software/tcltk/download.html,tcl的话解压出来我直接进入的unix目录下,因为macosx下README说mac下当成unix装也没啥事,安装没什么注意的,./configure  make makeinstall is enough。装完tcl记得看下安装的路径,我的是在/usr/local/lib/。

然后:再下载expect包,https://sourceforge.net/projects/expect/files/Expect/5.45/。这里解压之后放到tcl一起,我的话即/usr/local/lib/,然后make时候make expect说是可以只装expect相关组件,make之后install了。然后我们就具备了expect的主要功能了,which expect可以查看 expect安装位置

然后:在一个文件夹中 touch pwd.sh

写入:

#!/usr/bin/expect -f

set user xxx

set host 172.19.30.xxx

set timeout -1

set password xxx

spawn ssh $user@$host

expect "*assword:*"

send "$password\r"

interact

然后修改文件权限:chmod +x pwd.sh

最后:expect pwd.sh

即可免密码登陆远程机器

当然最后在profile中配置alias更好用;

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

在profile中配置alias:

1. cd ~

2.在家目录下创建 .bash_profile 文件(若已存在则直接打开)

3.在文件中添加 上面文件的路径(/Users/mac/wwwroot/pwd.sh):
alias login="/Users/mac/wwwroot/pwd.sh"

4. 添加权限:chmod 777 .bash_profile
5.执行 login  并enter 即可实现登录 。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值