我本人其实及其烦使用配置文件这种东西,有时候看到巨大又复杂的配置文件,甚至复杂过代码的时候,总感觉设计配置文件的人有些本末倒置。

但是ssh这个配置文件真的非常简单好用,让我稍微体验了一次配置文件使用的快感。

在使用ssh confg之前我大概是这样设置和管理自己的ssh连接的。

首先条线一个集中的地方,比如我自己在桌面上创建一个sa的文件夹,然后在这个文件夹里面放上自己经常连接的服务器的连接命令做成一个脚本类似名字叫

ssh-redis

#!/bin/sh
ssh piperck@115.28.39.64 -p 22

做一个shell脚本,里面放上想要ssh的地址。然后把这个sa文件夹设置到环境变量中,使得可以在terminal的任意地方调用到他们。

因为我自己使用的zsh所以在我的.zshrc里面设置上这个文件夹的路径

export PATH="/Users/piperck/Desktop/tools/sa:$PATH"

然后重新开个shell 就可以在任何地方输入ssh-redis方便的登陆到目标服务器上面了。

除了上面这个办法,当然你也可以选择在.zshrc 或者 .bashrc里面使用Alias指定一个 ssh登陆的代号作为命令的名字从而执行命令比如

Alias dev "ssh www.xiachufang.com -p 22"

其实这样已经非常方便了我觉得,但是作为懒癌晚期程序员每次遇到新服务器需要配置的时候,都觉得这种添加脚本的方法巨麻烦,而且文件夹里面的脚本会越来越多。有没有更优雅的方法可以干这个事儿?

ssh config配置文件可以解决这个问题,让所有脚本都被重新放回一个文件中

在~/.ssh/ 下创建 config文件,并以如下格式编辑配置文件:

Host labHostName amazon.comUser piperckIdentityFile ~/.ssh/id_rsa

Host: 是我们在输入命令的时候的名字 比如我这里是lab  那么我使用ssh命令的时候需要使用

ssh lab

注意这里是空格,而不是 刚才我脚本输的ssh-redis 中间是横线,因为脚本可以随便自己使用名字,也算是一个好处吧。

HostName: 是目标主机的主机名,也就是平时我们使用ssh后面跟的地址名称。

Port:指定的端口号。

User:指定的登陆用户名。

IdentifyFile:指定的私钥地址。

然后就可以愉快的使用ssh lab 登陆了。同样的道理,可以在这个config文件里面建立无数个类似的配置,而再也不必每次都写脚本了。看起来还是蛮方便的。

另外在设置了config之后可能出现一个问题,每次在连接的时候可能会要求你输入私钥的对称加密密匙,所以需要把这个钥匙加入到authentication agent中。

所以这里要说到一个ssh-add命令

使用ssh-add ~/.ssh/your_private_key  输入你的私钥密码 就可以把你的私钥加入到ssh-agent中去,方便的让他帮你管理。而不再需要每次输入的时候都重复输入密码。

当然不需要的时候 你也可以使用

ssh-add -D 删除所有管理的密钥

ssh-add -d 删除指定的

ssh-add -l 查看现在增加进去的指纹信息

ssh-add -L 查看现在增加进去的私钥

如果重启之后,会发现需要重新load一下ssh-agent

ssh-add -K 将指纹加到钥匙串里面去

ssh-add -A 可以把钥匙串里面的私钥密码,load进ssh-agent

Reference:

http://nerderati.com/2011/03/17/simplify-your-life-with-an-ssh-config-file/  Simplify Your Life With an SSH Config File

使用ssh config配置文件来管理ssh连接相关推荐

  1. C#对config配置文件的管理

    应用程序配置文件,对于asp.net是 web.config,对于WINFORM程序是App.Config(ExeName.exe.config). 配置文件,对于程序本身来说,就是基础和依据,其本质 ...

  2. [ssh config]ssh登陆信息配置

    当你需要经常登陆到远程服务器上进行操作的时候,SSH链接是一个跳不过去的话题. 当你需要链接的服务器相对较少的时候,你可以直接记忆下对应的ip和相关信息,但是随着你需要关注的服务器越来越多,你会发现i ...

  3. linux服务器开启ssh权限,linux下开启SSH,允许root用户远程无密码登录

    本文的应用场景是:实现本地主机(127.0.0.1即客户机)通过 SSH root@{ip地址} 可以直接登录远程主机. 一.SSH原理 1.SSH公钥认证的基本原理: SSH 是一个专为远程登录会话 ...

  4. 配置文件~/.ssh/config和/etc/ssh/ssh_config

    一般不需要修改OpenSSH客户端配置文件.对于给定用户,共有两个配置文件:~/.ssh/config(用户专用)和/etc/ssh /ssh_config(全局共享).要按照该顺序读取这些文件,对于 ...

  5. vscode连接远程服务器遇到Bad owner or permissions on C:\\Users\\XXX/.ssh/config的解决方法

    一.vscode连接服务器 vscode连接远程服务器(傻瓜式教学) 二.出现Bad owner or permissions on C:\Users\XXX/.ssh/config vscode中报 ...

  6. ssh框架配置文件流程_通过配置文件和安排增强您的工作流程

    ssh框架配置文件流程 by Marcus Wood 由马库斯·伍德(Marcus Wood) 通过配置文件和安排增强您的工作流程 (Supercharge your workflow with pr ...

  7. 运维基本功(十六):远程管理SSH服务

    本文是在课程课件基础上修改的学习笔记 课程原地址:https://www.bilibili.com/video/BV1nW411L7xm 如有侵删 运维基本功(一):Linux系统安装 运维基本功(二 ...

  8. day17-远程管理SSH服务

    远程管理SSH服务 一.搭建SSH服务 1.关闭防火墙与SELinux # 关闭firewalld防火墙 # 临时关闭 systemctl stop firewalld # 关闭开机自启动 syste ...

  9. 不要只做个ACV工程师,SSH框架配置文件详解。知其然,也要知其所以然。

    SSH框架配置解析: SSH分别代表: SpringMVC Spring(连接MVC和hibernate) Hibernate SpringMVC.xml [在这个配置文件中常见的问题]: 1.启动报 ...

最新文章

  1. JQ中$(window).load和$(document).ready()使用,区别与执行顺序
  2. 全球最大的公开人脸数据集 | 清华大学芯翌科技联合发布
  3. Java jmap查看堆内存
  4. java并发编程学习5--forkJoin
  5. ajax datatype_JavaScript学习笔记(二十七) ajax及ajax封装
  6. String转Double
  7. redis单线程为什么还快的个人解释
  8. windows查看linux文件中文,Linux 系统下无法查看Windows 中创建的中文文件名
  9. 大数据分析的特点都有哪些
  10. 中职计算机课例分析,中学信息技术课教学案例分析
  11. GitHub客户端 Desktop使用
  12. cleanmymac2023免费版纯净mac电脑系统管家
  13. c语言程序设计问号是什么意思,在C语言中,该语句在z=xy?x:y中是什么意思,问号表示什么意思...
  14. 赛码网刷题记录acmcoder
  15. 判断手机号所属运营商--课后程序(Python程序开发案例教程-黑马程序员编著-第11章-课后作业)
  16. Unity 3D 海水的实现2 折射与反射 离屏相机的渲染
  17. 寻找勾股数的一种极快的算法
  18. UESTC-1059 秋实大哥与小朋友(离散化+线段树)
  19. 【两化融合】新一代信息技术怎样与制造业深度融合?
  20. 羊皮卷的故事-第十五章-羊皮卷之八

热门文章

  1. GDCM:gdcm::File的测试程序
  2. ITK:全局注册两个图像(仿射)
  3. DCMTK:测试dcmseg的DcmSegUtils功能
  4. DCMTK:DcmSpecificCharacterSet类的测试程序
  5. VTK:可视化算法之BluntStreamlines
  6. VTK:InfoVis之DelimitedTextWriter
  7. OpenCV添加(混合)两个图像
  8. 使用上下文属性将C ++对象嵌入QML
  9. OpenGL使用计算着色器进行GPU光线跟踪
  10. C++骑士走棋盘Knight tour算法(附完整源码)