自动化 ssh 授权笔记

作者: zvving | 来源:发表于2016-05-06 16:47 被阅读418次

每次 ssh user@host 登录目标机器都要输密码是件很烦的事,特别是经常访问多台主机的情况。 最近写自动化脚本时碰到要自动做机器间 ssh 验证,碰到一些问题记录下来备忘。

分析

  1. 通过 ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 命令生成本地机器的私钥和公钥: ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub
  2. 授权就是将将本地机器的公钥加入到目标机器的 ~/.ssh/authorized_keys 中供验证用
  3. 本地 ~/.ssh/known_hosts 中信任目标机器的公钥指纹

自动做 ssh-key 授权


# copy local ssh-key to remote 对应分析中的第二步
cat ~/.ssh/id_rsa.pub | ssh root@192.168.37.110 "cat >> ~/.ssh/authorized_keys"

# add host to known_hosts 对应分析中的第三步
ssh-keyscan -t rsa "192.168.37.110" >> ~/.ssh/known_hosts

或者这两条命令可以精简为如下一条

brew install ssh-copy-id # just for mac

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.37.110

还有剩下的一个难题是还需要手动输入密码,这个怎么自动化呢?

# just for mac
brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb 

sshpass -p "PASSWORD" ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@192.168.37.110

或者使用 Fabric 等远程执行 run("cmd")

# tips 执行 sudo 不需要手动输入密码
echo "PASSWORD" | sudo -S CMD

用 iterm2 做 terminal 管理

参考

相关文章

  • 自动化 ssh 授权笔记

    每次 ssh user@host 登录目标机器都要输密码是件很烦的事,特别是经常访问多台主机的情况。 最近写自动化...

  • python脚本通过git提交到GitHub

    背景:开发接口自动化脚本后,需要提交到GitHub上 通常GitHub 都是通过 SSH 来授权的,下面讲下配置步...

  • ssh加授权

    操作中每次提交都要手动输入用户名和密码,若想避免这些麻烦,可以在系统中创建 SSH 公私钥,并将公钥放到 GitH...

  • gitlab配置

    1.背景:自动化测试脚本的版本管理工具选择了gitlab,做个如何配置ssh的笔记(环境win10) 2.步骤:下...

  • Git 快速使用

    利用 SSH 完成 Git 与 GitHub 的绑定 在 GitHub 上,一般都是通过 SSH 来授权的,而且大...

  • iOS逆向1020-1-越狱开发笔记

    越狱开发笔记 必备插件 安装openSSH插件 SSH、open SSH open SSH是工具,通过 open ...

  • linux基础操作

    linux笔记 ssh 配置 改端口号:cd/etc/ssh/ssh_config按i (insert)port ...

  • 自动化部署--Jenkins--构建Node项目(四)

    一、自动化构建VUE项目 1、安装Publish Over SSH插件用于SSH连接远程的服务器。2、安装 Nod...

  • Python3 Fabric(持续更新)

    Python3 Fabric(超好用的自动化运维模块): 简介 Fabric是Python中比较强大的SSH自动化...

  • CA集成jenkins

    参考资料git + ssh + 蒲公英officialDocumentJenkins(二)自动化打包史上最全Jen...

网友评论

    本文标题:自动化 ssh 授权笔记

    本文链接:https://www.haomeiwen.com/subject/sosjrttx.html