使用ssh config配置文件来管理ssh连接
我本人其实及其烦使用配置文件这种东西,有时候看到巨大又复杂的配置文件,甚至复杂过代码的时候,总感觉设计配置文件的人有些本末倒置。
但是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连接的更多相关文章
- C#对config配置文件的管理
应用程序配置文件,对于asp.net是 web.config,对于WINFORM程序是App.Config(ExeName.exe.config). 配置文件,对于程序本身来说,就是基础和依据,其本质 ...
- 最佳搭档:利用 SSH 及其配置文件节省你的生命
本文转载自最佳搭档:利用 SSH 及其配置文件节省你的生命 导语 SSH 协议是事实上的互联网基石之一.在 SSH 协议出现之前(1995 年由 Tatu Ylonen 设计),通过互联网远程登录其他 ...
- Linux:SSH服务配置文件详解
SSH服务配置文件详解 SSH客户端配置文件 /etc/ssh/ssh——config 配置文件概要 Host * #选项“Host”只对能够匹配后面字串的计算机有效.“*”表示所有的计算机. For ...
- ssh config配置
使用ssh config文件可以简化ssh连接输入参数,直接从config读取 (1)建立config文件 config文件位置在~/.ssh/config 如果不存在,可以创建一个 (2)confi ...
- 利用 ssh 的用户配置文件 config 管理 ssh 会话
http://dhq.me/use-ssh-config-manage-ssh-session 利用 ssh 连接远程服务器,一般都要输入以下类似命令: 1 ssh user@hostname -p ...
- 利用ssh的用户配置文件config管理ssh会话
通常利用 ssh 连接远程服务器,一般都要输入以下类似命令: ssh user@hostname -p port 如果拥有多个 ssh 账号,特别是像我这种喜欢在终端里直接 ssh 登陆,不用 PuT ...
- ssh的用户配置文件config管理ssh会话
抄的这个: https://www.cnblogs.com/zhonghuasong/p/7236989.html 只是在这里留个存档,防止删除 我有这样的需求就是,因为需要ssh连接到服务器,然后每 ...
- 使用config 来管理ssh的会话
通常利用 ssh 连接远程服务器,一般都要输入以下类型命令: ssh user@hostname -p port 如果拥有多个ssh账号,特别是像我这种喜欢在终端里直接ssh登录, 要记住每个ssh账 ...
- 配置ssh的config文件-为每个ssh连接创建别名
其实选来选去,还是iterm2就够用了,唯一比较麻烦的就是每次都有输入地址和用户名,其实,可以通过配置文件简写的. 可以在 ~/.ssh/config文件写上配置alias信息,以后ssh的时候根据a ...
随机推荐
- JavaScript高级程序设计学习(三)之变量、作用域和内存问题
这次讲的主要是变量,作用域和内存问题. 任何一门编程语言,都涉及这三个. 变量,比如全局变量,局部变量等,作用域,也分全局作用域和方法作用域,内存问题,在java中就涉及到一个垃圾回收的问题,由于ja ...
- node中npm安装模块的网络问题
最近使用node开发时,发现所有的依赖模块都安装不了啦,一直报错如下 rollbackFailedOptional: verb npm-session 5a4a66a1b8d06dc3 后来才发现是由 ...
- MySQL 基础十 性能优化
1.优化sql 2.建立索引 3.优化表结构,避免多个join查询
- SQL 清理缓存 更新无效
--查询结果1 select * from Student where ID='CCB87B71-FB78-4BFE-8692-24DD2D8F8460' --查询结果2 where ID='CCB8 ...
- Android Studio在华为真机上运行无法输出Debug日志解决
这主要与华为手机本身的权限设置有关,解决办法请看链接地址 链接地址: https://blog.csdn.net/seafishyls/article/details/52198814
- MySQL(八)子查询和分组查询
一.子查询 1.子查询(subquery):嵌套在其他查询中的查询. 例如:select user_id from usertable where mobile_no in (select mobil ...
- Omi-touch实战 移动端图片轮播组件的封装
pc端的轮播,移动端的轮播都很常见.一年前,我还为手机端没有左滑,右滑事件从而封装了一个swipe库,可以自定义超过多少滑动时间就不触发,也可以设置滑动多少距离才触发,这一个功能的代码就达到400多行 ...
- Android Studio复制项目作为一个新的工程
Android Studio复制项目作为一个新的工程 等待..... 好了 可能会安装失败 Failed to finalize session : INSTALL_FAILED_INVALID_AP ...
- 如何应用ML的建议-上
本博资料来自andrew ng的13年的ML视频中10_X._Advice_for_Applying_Machine_Learning. 遇到问题-部分(一) 错误统计-部分(二) 正确的选取数据集- ...
- 开源的mqtt服务器
看介绍挺强大,开源,可运行在Linux和Windows,文档中有相关测试工具,及客户端介绍. 希望有机会应用.http://www.emqtt.com/