iTerm2使用脚本自动登录远程服务器

在iTerm2下ssh不能自动登录,不自动登录每次输入命令太麻烦了。这里介绍一个采取expect脚本的方式实现iTerm2下ssh自动登录。

  1. 新建一个expect脚本 login.exp

!/usr/bin/expect

if { [llength $argv] < 4 } {
puts "Usage: $argv0 ip port user passwd"
exit 1
}

set ip [lindex $argv 0]
set port [lindex $argv 1]
set user [lindex $argv 2]
set passwd [lindex $argv 3]
set timeout 30

spawn ssh -q -l$user -p$port $ip

expect {
"assword:" {
send "$passwd\r"
}
"FATAL" {
puts "\nCONNECT ERROR: $ip occur FATAL ERROR!!!\n"
exit 1
}
"No route to host" {
puts "\nCONNECT ERROR: $ip No route to host!!!\n"
exit 1
}
}

puts "\n—> Connected: $ip, pls enjoy yourself!\n"
interact

该脚本需要四个参数,

  1. 远程地址

  2. 远程端口

  3. 远程用户名

  4. 用户密码

  5. 将expect脚本copy到$PATH下(例如/usr/local/bin)
    cp login.exp /usr/local/bin/login.exp

  6. 在iterm2中设置登录脚本,用command+o的方式呼出profiles,点击Edit Profiles

    02108B6102882432AC76626EBBDE054F.jpg

接着新建一个Profile,这里以我的webserver为例

在红色涂抹的部分分别制定设置脚本、以及上面的四个参数。如
login.exp 地址 端口 用户名 密码
之间用空格分离。
4.使用
配好后,只要command+o的方式呼出profiles,双击需要打开的Profile。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容