iterm2设置免密登录-ssh

1、创建expect脚本

在 Mac 终端或者 iTerm2中,输入vim iterm2login.sh,创建名为iterm2login的脚本,内容为:

#!/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

如上面的代码所示,其含有四个参数,分别为

  • 1:[lindex $argv 0],表示服务器端口号;
  • 2、[lindex $argv 1],表示服务器名称;
  • 3、[lindex $argv 2],表示服务器 IP 地址;
  • 4:[lindex $argv 3] ,表示服务器密码。

2、在 iterm2 中配置新的Profile

打开item2,Preferences -> Profiles 进入以下界面:
image.png

1:+表示新增Profile,-表示移除Profile
2:表示我们自定义的Profile名称
3:Send text at start,发送服务器相关信息至expect脚本。

其中 第3项 的内容是非常重要的,必须按顺序。包括:脚本的全路径、端口号、服务器名称及服务器密码。如果 第3项 的内容书写错误或者弄混顺序,则会导致 SSH 免密登录失败。此外,服务器默认端口为22,具体按实际情况而定。在此给出一个 第3项 的内容实例:

/Users/cheche/iterm2login.sh 22 guest 100.110.120.130 password

3、最后,我们通过下图中的选项,即可免密登录服务器。

image.png

---------------------小小的分割线-------------------

ps :如果连接的时候如下图中的错误,则可以设置当前 iterm2login.sh 为可执行文件
命令:sudo chmod a+x iterm2login.sh。然后再重复第3步就可以免密登录了。


image.png

你可能感兴趣的:(iterm2设置免密登录-ssh)