iTerm2一键登录服务器跳板机(免密登陆)

一、 使用item2的profiles 和expect脚本

配置步骤:

1. 写一个expect脚本


iTerm2一键登录服务器跳板机(免密登陆)_第1张图片

#!/usr/bin/expect 

set timeout 30 

spawn ssh [lindex $argv 0]@[lindex $argv 1] 

expect { 

        "(yes/no)?" 

        {send "yes\n";exp_continue} 

        "password:" 

        {send "[lindex $argv 2]\n"} 

interact

可以命名为login

可以看出些脚本需要三个参数:服务器用户名,服务器地址 ,密码

即你直接用ssh命令登录时的 ssh 用户名@服务器地址 -P密码

2. 把这个脚本放到$PATH 下,一般像/usr/local/bin/, /usr/bin下等(注意文件夹权限否则找不到文件),建议放/usr/local/bin,你也可以echo $PATH看一下.

注意:新的Mac os 可能对这些目录限制比较严格,有可能需要sudo 才能成功

最后用chmod 让文件变成可执行文件

3. 打开item2用command+o的方式呼出profiles,点击右下角的Edit Profiles

4.配置profile,如下图:


iTerm2一键登录服务器跳板机(免密登陆)_第2张图片

Send text at start 内容的格式:XXX/login 服务器登录名 服务器IP 密码

如上图配好后,command+o 打开的profile列表里双击即可完成登录。

二、 利用公钥认证登录

1、 在本地机器创建公钥,一路回车即可

ssh-keygen -t rsa

2、将公钥复制到ssh服务器

将上一步生成的id_rsa.pub公钥文件复制到目标服务器对应用户下的~/.ssh/authorized_keys 文件

可以手动复制,也可以利用ssh-copy-id工具复制,这里就说下手动复制,就一行内容,不值得装个工具了,需要的请自行百度谷歌。

如果服务器上没有authorized_keys 这个文件,直接创建即可,如果有,则把id_rsa.pub 这个文件里的内容copy 追加到后面即可。

3、 配置快捷登录

在自己的mac上的 ~/.ssh/config配置文件添加你的ssh服务器信息,若没有就新建,有就在后面追回,格式:


iTerm2一键登录服务器跳板机(免密登陆)_第3张图片

Host            alias #自定义别名

HostName        hostname  #替换为你的ssh服务器ip或domain

Port            port #ssh服务器端口,默认为22

User            user #ssh服务器用户名

IdentityFile    ~/.ssh/id_rsa #第一个步骤生成的公钥文件对应的私钥文件

最后这里和上面第一种一样

Send text at start 内容的格式:ssh alias(上面配置文件中的自定义别名)

保存关闭,ssh alias 就可以登录你要登的服务器了

如果你本地终端使用的是zsh,那就更太简单了,不需修改config, 直接在.zshrc文件里添加即可

echo “alias ssh-to-username=’ssh username@hostname’” >> ~/.zshrc #将username和hostname替换为你的服务器信息

source ~/.zshrc #重新加载更改后的zshrc文件

ssh-to-username #使用别名,一条命令即可登录你的ssh服务器

你可能感兴趣的:(iTerm2一键登录服务器跳板机(免密登陆))