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

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

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

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

ssh-redis

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

做一个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 lab
HostName amazon.com
User piperck
IdentityFile ~/.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 及其配置文件节省你的生命

    本文转载自最佳搭档:利用 SSH 及其配置文件节省你的生命 导语 SSH 协议是事实上的互联网基石之一.在 SSH 协议出现之前(1995 年由 Tatu Ylonen 设计),通过互联网远程登录其他 ...

  3. Linux:SSH服务配置文件详解

    SSH服务配置文件详解 SSH客户端配置文件 /etc/ssh/ssh——config 配置文件概要 Host * #选项“Host”只对能够匹配后面字串的计算机有效.“*”表示所有的计算机. For ...

  4. ssh config配置

    使用ssh config文件可以简化ssh连接输入参数,直接从config读取 (1)建立config文件 config文件位置在~/.ssh/config 如果不存在,可以创建一个 (2)confi ...

  5. 利用 ssh 的用户配置文件 config 管理 ssh 会话

    http://dhq.me/use-ssh-config-manage-ssh-session 利用 ssh 连接远程服务器,一般都要输入以下类似命令: 1 ssh user@hostname -p ...

  6. 利用ssh的用户配置文件config管理ssh会话

    通常利用 ssh 连接远程服务器,一般都要输入以下类似命令: ssh user@hostname -p port 如果拥有多个 ssh 账号,特别是像我这种喜欢在终端里直接 ssh 登陆,不用 PuT ...

  7. ssh的用户配置文件config管理ssh会话

    抄的这个: https://www.cnblogs.com/zhonghuasong/p/7236989.html 只是在这里留个存档,防止删除 我有这样的需求就是,因为需要ssh连接到服务器,然后每 ...

  8. 使用config 来管理ssh的会话

    通常利用 ssh 连接远程服务器,一般都要输入以下类型命令: ssh user@hostname -p port 如果拥有多个ssh账号,特别是像我这种喜欢在终端里直接ssh登录, 要记住每个ssh账 ...

  9. 配置ssh的config文件-为每个ssh连接创建别名

    其实选来选去,还是iterm2就够用了,唯一比较麻烦的就是每次都有输入地址和用户名,其实,可以通过配置文件简写的. 可以在 ~/.ssh/config文件写上配置alias信息,以后ssh的时候根据a ...

随机推荐

  1. Linux kernel Programming - Advanced Char Driver Operations

    ioctl //user space int ioctl(int fd,unsigned long cmd,...); //kernel space int (*ioctl)(struct inode ...

  2. 【Codeforces 1120A】Diana and Liana

    Codeforces 1120 A 题意:给\(n\)个数\(a_1..a_n\),要从其中删去小于等于\(n-m\times k\)个数,使得将这个数组分成\(k\)个一段的序列时有至少一段满足以下 ...

  3. Linux系列教程(五)——Linux常用命令之链接命令和权限管理命令

    前一篇博客我们讲解了Linux文件和目录处理命令,还是老生常淡,对于新手而言,我们不需要完全记住命令的详细语法,记住该命令能完成什么功能,然后需要的时候去查就好了,用的多了我们就自然记住了.这篇博客我 ...

  4. SQL Server 中用DBCC Opentran语句查看未关闭的事务(转载)

    从SQL Server 2008开始,可以使用DBCC Opentran语句查看数据库中最早一个没有被关闭的事务,下面这篇文章讲述了如何使用DBCC Opentran语句. An Open trans ...

  5. BZOJ 2810 [Apio2012]kunai

    Orz Starria 现在看来,也不是很难,能做...就是不能写 可以想到维护每个苦无扫过的矩形,然后做矩形面积并即可. 然后发现自己只会$n^2$的处理方法... 想了好久之后问了一发 Starr ...

  6. 3.2《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——检查文件开始与结尾

    检查文件两个互补的命令是head 和tail, 它们分别用于查看文件的开始(头部)和结束(尾部).head命令展示了文件的前10行.(Listing 11). ##Listing 11: 查看示例文件 ...

  7. @media响应式的屏幕适配

    当页面小于960px的时候执行 @media screen and (max-width: 960px){ body{ background: #000; } } 等于960px尺寸的代码 @medi ...

  8. H+ 后台主题UI框架

    十年河东,十年河西,莫欺少年穷 学无止境,精益求精 今天得到了一个非常完美的后端管理系统框架:H+ 后台主题UI框架 H+ 后台主题UI框架 H+是一个完全响应式,基于Bootstrap3.3.6最新 ...

  9. EF 利用PagedList进行分页并结合查询 方法2

    微软提供了PagedList分页,相信大家在网上也能搜索一大堆关于pagedList用法的博客,论坛.但是,在使用的过程中一不小心,就会掉入pagedList某种常规用法的陷阱. 我所说的某种常规用法 ...

  10. js类型----你所不知道的JavaScript系列(5)

    ECMAScirpt 变量有两种不同的数据类型:基本类型,引用类型.也有其他的叫法,比如原始类型和对象类型等. 1.内置类型 JavaScript 有七种内置类型: • 空值(null) • 未定义( ...