mac terminal ssh client shuttle 免输密码

免输入密码登录

不需要iterm和zoc等第三方软件,alias(纯终端)和shuttle(有UI)两种方式使用密码(不需要手动输入)登录目标机器

准备工具

sshpass,shuttle

密码配置文件

密码文件(明文存储,若考虑强安全问题,请绕道)
格式:hostname(已在系统hosts文件定义), user, password, ssh_port

$ cat /Users/zhang/zhangsan/work/secure
vm-001 root 123456 1122
vm-002 root 123456 22

脚本

  1. 核心脚本
$ cat /Users/zhang/zhangsan/work/ssh.sh
#!/bin/sh
WORK_DIR=$(dirname $0)
cd $WORK_DIR

HOST=$1;
USER=$2;
if [ "x${HOST}" == "x" -o "x${USER}" == "x" ]; then
    exit 2
fi
PASS_PORT=$(grep -E "^$HOST\s+$USER\s+" secure)
PASS=$(echo $PASS_PORT | awk ‘{print $3}‘)
PORT=$(echo $PASS_PORT | awk ‘{print $4}‘)
if [ "x${PASS}" == "x" -o "x${PORT}" == "x" ]; then
    exit 2
fi
exec sshpass -p $PASS ssh -p $PORT [email protected]$HOST

更新逻辑脚本存储至~/.bash_profile, 用户每次登录会根据secure重新生成alias和shuttle所需的配置文件

  1. alias
    在~/.bash_profile中添加以下脚本后,更新alias

    while read LINE
    do
    SSH_HOST=$(echo "$LINE" | awk ‘{print $1}‘)
    SSH_USER=$(echo "$LINE" | awk ‘{print $2}‘)
    alias "$SSH_HOST$SSH_USER"="sh /Users/zhang/zhangsan/work/ssh.sh $SSH_HOST $SSH_USER"
    done < /Users/zhang/zhangsan/work/secure
  2. shuttle
    生成shuttle配置的python脚本
$ cat /Users/zhang/zhangsan/work/shuttle.py
import json
shuttle = {
  "editor": "default",
  "launch_at_login": True,
  "terminal": "Terminal.app",
  "iTerm_version": "nightly",
  "default_theme": "Default",
  "open_in": "tab",
  "show_ssh_config_hosts": False,
  "ssh_config_ignore_hosts": [],
  "ssh_config_ignore_keywords": [],
  "hosts": []
}

with open("/Users/zhang/zhangsan/work/secure", "r") as f:
    while True:
        line = f.readline()
        if not line:
            break
        HOST_PORT = line.split()
        if len(HOST_PORT) >= 3:
            HOST, PORT = HOST_PORT[0], HOST_PORT[1]
            shuttle["hosts"].append({"cmd": "sh /Users/zhang/zhangsan/work/ssh.sh {HOST} {PORT}".format(HOST=HOST, PORT=PORT) , "name": "{HOST} {PORT}".format(HOST=HOST, PORT=PORT)})

with open("/Users/zhang/.shuttle.json", "w") as f:
    json.dump(shuttle, f, indent=2)

在~/.bash_profile中添加python /Users/zhang/zhangsan/work/shuttle.py,生成shuttle配置文件

备注

mac下的zoc本来也是简单好用的一款ssh客户端,但已崩溃多次(正版会不会好点)

参考链接

下载shuttle
安装sshpass

原文地址:http://blog.51cto.com/chaoyuezhangsan/2071975

时间: 2024-08-29 17:26:35

mac terminal ssh client shuttle 免输密码的相关文章

PuTTY免输密码自动登录Linux

1.使用PuTTY安装目录里的puttygen.exe工具.先点“生成(Generate)”,然后随意移动鼠标直到进度条填满,即可生成密钥 公钥部分:把上边那一段文字全选->复制备用.(不要点击“保存公钥(Save Public Key)”,点那个保存的公钥没有用!)私钥部分:点击“保存私钥(Save Private Key)”,保存一个.ppk文件.注:别给密钥文件加密码——加了密码,每次使用.ppk文件时就都需要提供,就背离自动登录这个目的. 自动登录将公钥和私钥分别告知linux和PuTT

普通用户免输密码切换root

#一般安全起见生产环境都会禁止root账号登录,基本上都是用普通用户ssh登录以后再切换root账户. #而默认sudo su -切换root是需要密码的. 解决: 1.编辑配置文件/etc/pam.d/su vim /etc/pam.d/su # Uncomment the following line to implicitly trust users in the "wheel" group. auth            sufficient      pam_wheel.s

CentOS下实现SCP免输密码传送文件

前提条件:两台CentOS主机拥有相同的账户名,假设主机A和主机B拥有相同的用户名binguo,只需下面两步 1.以binguo帐户名登录主机A,主目录下执行如下命令生成配对密钥,不用管提示,一路回车: ssh-keygen -t rsa 2.将主目录下隐藏目录.ssh中的id_rsa.pub文件复制到主机B的binguo主目录的/.ssh/目录中,并重命名为authorized_keys. cd .sshscp id_rsa.pub 主机B:/home/binguo/.ssh/authoriz

同步文件至多个机器脚本(免输密码)

转载请标明出处~ #!/bin/bash SPATH=/tmp/index.js    #测试路径/文件DPATH=/tmp/index.js_bak  #目标路径/文件 distribute_rsync () {   ###分发函数expect -c "   spawn rsync -aP $1 $3:$2; expect "password:" {send \"testpasswd\r\"}; expect eof;"} for ADDR_I

[已解决] windows 下 git 免输密码

在 .git/config 里面加上这句话即 [credential] helper = store 原文地址:http://www.cnblogs.com/gifisan/p/5829578.html

github免输用户名/密码SSH登录的配置

从github上获取的,自己整理了下,以备后用. Generating an SSH key mac windows SSH keys are a way to identify trusted computers without involving passwords. You can generate an SSH key and add the public key to your GitHub account by following the procedures outlined in

使用ssh公钥实现免密码登录

使用ssh公钥实现免密码登录 ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例. 有机器A(10.207.160.34),B(10.221.32.234).现想A通过ssh免密码登录到B.首先以root账户登陆为例. 1.在A机下生成公钥/私钥对. ssh-keygen -t rsa -P '' -P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车. 该命令将在~/.ssh目录下面产生

sudo用户免输sudo密码

最近一直在查如何创建sudo用户并且免输sudo密码,找了很多资料,结果发现不可行.然后今天意外的被我破解了! 环境:  CentOS 6.6 1. 首先你的有一个执行sudo的普通用户. [[email protected] ~]# useradd chengcai 2. 以root用户登录,然后修改/etc/sudoers文件: vim /etc/sudoers #################################################################

SSH中的免密码登录

1:执行命令  ssh-keygen rsa 产生秘钥 ,位于~/.ssh文件夹下(如果在这期间有什么提示,一路敲击enter下去,什么都不用输入) 2:执行命令 cp  ~/.ssh/id_rsa.pub     ~/.ssh/authorized_keys  如果提示yes/no  直接输入  yes 验证ssh  localhost 搞定 不用输入密码了 SSH中的免密码登录