前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ssh技巧之主机别名

ssh技巧之主机别名

作者头像
KINGYT
发布2019-09-17 10:51:13
1K0
发布2019-09-17 10:51:13
举报

一般我们在用ssh登录服务器时,都是用 ssh user@host 这种命令形式,但当我们管理的机器一多,很容易忘记user或host部分,特别是当host还是ip的时候。

或者,当一条ssh命令特别复杂,需要加各种参数,在这种情况下,这条ssh命令基本是不可能记住的。

这些问题俨然已经成为了服务器管理者的一份很大的心智负担。

那怎么办呢?

其实,ssh为这些问题早就想好了对应的解决方案,我们可以在ssh的配置文件中,为各个主机配置别名,并可以同时为该主机指定各种参数,这样我们就可以在终端直接用别名方式登录,而不用再记各种user、host或者参数了。

实验看下。

首先我们在ssh的配置文件(~/.ssh/config)中添加如下内容:

代码语言:javascript
复制
Host h3  HostName 192.168.56.5  User u3  Port 22
Host h2  HostName 192.168.57.3  User u2  ProxyJump u3@192.168.56.5
Host *  IdentityFile ~/.ssh/id_ed25519

该配置文件作用及含义是:

1. 为主机 192.168.56.5 指定别名 h3,同时指定登录用户为u3,目标端口为22,所以在我们登录这台机器时,可以直接用下面的方式:

代码语言:javascript
复制
$ ssh h3Last login: Tue Sep 10 11:36:23 2019 from 192.168.56.1u3@h3:~$

2. 为主机 192.168.57.3 指定别名 h2,登录用户 u2,同时还为其指定了一台跳板机 u3@192.168.56.5,在我们ssh登录h2时,ssh会先登录跳板机,再登录h2。

配置文件中的 ProxyJump 其实就相当于命令行中的 -J 参数,目的是用于指定登录目标机器的跳板机。

有关跳板机更多的介绍,请看我之前写的一篇文章:ssh技巧之跳板机

有了这些配置,我们登录h2就可以直接使用下面的命令:

代码语言:javascript
复制
$ ssh h2Last login: Tue Sep 10 11:39:05 2019 from 192.168.57.4u2@h2:~$

很方便吧,其实还有更方便的。

ssh命令体系里其实还包括scp,在我们用ssh配置文件的形式指定了各种参数后,scp命令就可以简化成下面这个样子:

代码语言:javascript
复制
$ scp abc.txt h2:/home/u2abc.txt

如果没有上面的配置文件,我们就必须用下面的命令:

代码语言:javascript
复制
$ scp -J u3@192.168.56.5 abc.txt u2@192.168.57.3:/home/u2abc.txt

是不是简化了很多?

3. 为所有主机指定通用配置。

上面ssh配置文件中,第三个Host配置匹配的主机是 *,即所有主机,这样我们就可以在这个Host底下为所有主机添加各种通用配置了。

其实ssh配置文件功能远比本文讲述的强大及灵活,如果平时是ssh的重度用户,推荐好好看下ssh_config(5) 这个man文档。

希望对你有所帮助。

完。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linux内核及JVM底层相关技术研究 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档