使用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 ...
随机推荐
- virtualbox+vagrant学习-1-环境安装及vagrantfile的简单配置-Mac系统
在学习docker-machine时,发现需要使用到虚拟化平台,所以选择了使用virtualBox. 然后后面发现需要使用vagrant来在mac系统中作为虚拟机管理软件,所以下面将会简述我自己学习使 ...
- mysql 日期操作 增减天数、时间转换、时间戳(转)
转自http://www.cnblogs.com/wenzichiqingwa/archive/2013/03/05/2944485.html http://hi.baidu.com/juntao_l ...
- zookeeper入门之Curator的使用之几种监听器的使用
package com.git.zookeeper.passwordmanager.listener; import java.util.ArrayList; import java.util.Lis ...
- 查看和指定SpringBoot内嵌Tomcat的版本
查看当前使用的Tomcat版本号 Maven Repository中查看 比如我们需要查Spring Boot 2.1.4-RELEASE的内嵌Tomcat版本, 可以打开链接: https://mv ...
- alios-things makefile
https://blog.csdn.net/crazyskady/article/details/80849765 MAKEFILE下面这句:CFLAGS=-I/home/develop/includ ...
- jquery中的选择器:has和:not的用法
这两个选择器可以帮助我们在选择父级和子孙之间关系的dom更从容~ <div><p><span>Hello</span></p></di ...
- WPF 任务栏背景闪烁提醒
原文:WPF 任务栏图标闪烁提醒 public static class FlashWindow { [DllImport("user32.dll")] [return: Ma ...
- VMware Ubuntu蓝屏问题解决
解决方法: 问题分析启动 Ubuntu 可以进入登录界面,说明系统是可以运行起来的.没有发生大块的核心数据损坏,linux 系统一般都可以修复,一定要淡定.于是开始放狗(google)搜索.“VMwa ...
- EZ 2018 06 10 NOIP2018 模拟赛(十八)
好久没写blog&&比赛题解了,最近补一下 这次还是很狗的,T3想了很久最后竟然连并查集都忘写了,然后T2map莫名爆炸. Rating爆减......链接不解释 好了我们开始看题. ...
- [Codeforces1137D]Cooperative Game
[Codeforces1137D]Cooperative Game Tags:题解 题意 这是一道交互题. 给你一张下面这样的地图,由一条长为\(t\)的有向链和一个长为\(c\)的环构成. 现在你有 ...