iterm2 SSH免密码远程连接服务器

本文介绍如何使用iterm2结合expect脚本实现自动化SSH登录,并保持会话清晰。通过在/usr/local/bin路径下创建iterm2login.sh脚本,可以实现一键连接服务器并自动清理屏幕的功能。
  1. 在/usr/local/bin目录下新建iterm2login.sh文件,内容如下:

    #!/usr/bin/expect
    
    set timeout 30
    spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2]
    expect {
            "(yes/no)?"
            {send "yes\n";exp_continue}
            "password:"
            {send "[lindex $argv 3]\n"}
    }
    expect "~"
    send "clear\n"
    interact
    

    授权:sudo chmod 777 iterm2login.sh
    这里[lindex $argv 0], [lindex $argv 1], [lindex $argv 2], [lindex $argv 3] 分别代表着4个参数。分别是:端口号、用户名、服务器地址、密码
    注:expect "~" send "clear\n"此两行代码是登录完成后自动清除控制台信息。

  2. 配置iterm2的profiles,添加服务器信息,例如:
    这里写图片描述

    注:send text at start中填写五个参数,分别是:脚本 端口号 用户名 服务器地址 密码
    如密码中带特殊字符,如‘@’时,会出现身份认证不通过,可在密码两端加上‘’

  3. 添加默认项,防止打开iterm2会自动链接某个服务器。
    这里写图片描述

参考文件:http://blog.youkuaiyun.com/fenglailea/article/details/50895867

使用iTerm2进行SSH连接有多种方法,以下为详细介绍: ### 方法一:通过编写脚本并在Profiles中配置 1. **编写脚本**: - 新建文件,如`iterm_login.sh`,在文件中添加如下内容: ```bash #!/usr/bin/expect set timeout 30 spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2] expect { "(yes/no)?" {send "yes\n";exp_continue} "password:" {send "[lindex $argv 3]\n"} } interact ``` - 这里的`[lindex $argv 0]`代表端口,`[lindex $argv 1]`代表用户名,`[lindex $argv 2]`代表服务器IP,`[lindex $argv 3]`代表密码。示例内容如`/Users/xiaoming/iterm_login.sh 22 lihua 192.168.0.0 lihua123` [^1]。 2. **配置iTerm2的Profiles**: - 按下`command + O`打开iTerm的Profiles。 - 点击`Edit Profiles`。 - 点击左侧底部`➕`,在`Send text at start`位置写入脚本的绝对路径及参数,如上述示例。 - 下次连接服务器时,直接按下`command + o`打开,选中相应配置后回车即可 [^1]。 ### 方法二:将服务器信息写入文件并新建Profile 1. **编写包含服务器信息的文件**: - 新建文件,如`tencenServerLogin`,内容示例如下: ```bash #!/usr/bin/expect -f set user root set host 33.123.323.41 set password 34343Bh - e343476 - c set timeout 30 spawn ssh $user@$host expect "*assword:*" send "$password\r" interact expect eof ``` 2. **新建iTerm2 Profile**: - 打开`iTerm2 -> preferences -> Profiles`。 - 点击左下角的`"+"`号,新建一个Profile。 - 在右边的内容框中,找到`Command`,填入`expect`加上前面新建文件的绝对路径 [^2]。 ### 方法三:编写通用脚本并配置iterm2 1. **编写脚本**: - 新建文件,如`remoteLogin.sh`,文件中添加如下内容: ```bash #!/usr/bin/expect set host [lindex $argv 0] set user [lindex $argv 1] set password [lindex $argv 2] set port 22 set timeout -1 spawn ssh $user@$host expect "*assword:*" send "$password\r" interact ``` - 授权执行权限:`chmod +x remoteLogin.sh` [^3]。 2. **配置iterm2**: - 打开iTerm2,打开菜单`Profiles -> Open Profiles...`,配置远程主机 [^3]。 ### 方法四:在用户目录下建立文件配置 1. **编写文件内容**: - 一般在用户目录下建立一个普通文件,设置内容如下: ```bash #!/usr/bin/expect set PORT 22 set HOST 主机IP set USER root set PASSWORD 123 spawn ssh -p $PORT $USER@$HOST expect { "yes/no" {send "yes\r";exp_continue;} "*password:*" { send "$PASSWORD\r" } } interact ``` [^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值