300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > [ssh config]ssh登陆信息配置

[ssh config]ssh登陆信息配置

时间:2018-12-23 04:06:03

相关推荐

[ssh config]ssh登陆信息配置

当你需要经常登陆到远程服务器上进行操作的时候,SSH链接是一个跳不过去的话题。

当你需要链接的服务器相对较少的时候,你可以直接记忆下对应的ip和相关信息,但是随着你需要关注的服务器越来越多,你会发现ip、用户名、密码等信息的记忆对你来说越来越不可承受。

当然,OpenSSH早就注意到了这个问题,它允许用户设置配置文件,并通过配置文件里的相关信息进行登陆。

1. 文件说明

配置文件的路径通常位于~/.ssh/config。当然,默认情况下,config文件可能不存在,这个时候你可以手动创建对应的文件,并不会影响后续的使用。

touch ~/.ssh/config && chmod 700 ~/.ssh/config

2. 配置格式

SSH配置文件通常采用如下的配置格式:

Host name1Port 22User user-nameHostName ipIdentityFile ~/.ssh/id_rsa

SSH配置文件中的每一个部分称做一个节。

每个节都是以Host开头,并且需要包含每个SSH链接所必需的相关选项。

如上面的配置信息,是一个常见的例子:

Host name1: 当前Host配置的别名,需要的时候可以直接通过当前的别名进行ssh登陆。Port 22: ssh建立链接的时候使用的端口,默认是22User user-name: 建立ssh链接的时候需要用到的用户名HostName ip: ssh链接的目的服务器的ipIdentityFile ~/.ssh/id_rsa: 需要通过私钥登陆的时候的文件

当你需要使用name1的链接的时候,只需要在命令行中输入ssh name1即可以创建对应的ssh链接。

2.1 Host模式

Host指令可以包含一个模型或者是通过空格进行分隔的模式列表。每个模式可以包含零个活多个非空字符或者说明符之一:

*- 匹配任意(零个或多个)个字符

Host *可以匹配所有的Host?- 匹配一个字符

Host mu?可以匹配以mu开头的任意3个字符的Host!- 否定匹配

Host * !mu可以匹配除了mu以外的任意Host

SSH按节对配置文件进行读取,如果有多个host-name匹配,则优先使用第一个匹配到的节中的选项。

2.2 SSH配置共享

为了减少SSH配置文件中大量的冗余配置,可以对SSH配置中的内容进行共享,如下例子:

Host zermzhangUser zermzhangHost marketUser marketHost *zhangUser zhangHostName 1.1.1.2IdentityFile ~/.ssh/id_rsa_2Host *User rootHostName 1.1.1.1Port 22IdentityFile ~/.ssh/id_rsa

如上,这是一个可以互相共享ssh配置信息的SSH配置文件的声明。

如果在命令行输入ssh zermzhang, 在逐节检测SSH配置文件的过程中,会按照顺序依次匹配到Host zermzhang, Host *zhang, Host *. 匹配到对应的Host之后,会按照匹配到的顺序依次获取对应的ssh配置。

Host zermzhang中获取到UserHost *zhang中获取到User, HostName, IdentityFile三个配置。但是因为已经在Host zermzhang中获取到了User,所以在该节中只会采用HostName, IdentityFile两个配置。同样,在Host *中只会采用Port这一个配置。

因此,输入ssh zermzhang之后可以获取到的完整配置是:

User zermzhangHostName 1.1.1.2IdentityFile ~/.ssh/id_rsa_2Port 22

后续,OpenSSH客户端会根据上述信息创建对应的ssh链接

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。