Linux下怎么定制SSH简化远程访问

Linux下怎么定制SSH简化远程访问?SSH 使用系统全局以及用户指定(用户自定义)的配置文件 。在本文中,我们将介绍如何创建一个自定义的 ssh 配置文件,并且通过特定的选项来连接到远程主机 。

Linux下怎么定制SSH简化远程访问


SSH (指 SSH 客户端)是一个用于访问远程主机的程序,它使得用户能够 在远程主机上执行命令 。这是在登录远程主机中的最受推崇的方法之一,因为其设计目的就是在非安全网络环境上为两台非受信主机的通信提供安全加密 。
SSH 使用系统全局以及用户指定(用户自定义)的配置文件 。在本文中,我们将介绍如何创建一个自定义的 ssh 配置文件,并且通过特定的选项来连接到远程主机 。
【Linux下怎么定制SSH简化远程访问】先决条件:
1.你必须 在你的桌面 Linux 上安装好 OpenSSH 客户端 。
2.了解通过 ssh 进行远程连接的常用选项 。
SSH 客户端配置文件
以下为 ssh 客户端配置文件:
1./etc/ssh/ssh_config 为默认的配置文件,属于系统全局配置文件,包含应用到所有用户的 ssh 客户端的设置 。
2.~/.ssh/config 或者 $HOME/.ssh/config 为用户指定/自定义配置文件,这个文件中的配置只对指定的用户有效,因此,它会覆盖掉默认的系统全局配置文件中的设置 。这也是我们要创建和使用的文件 。
默认情况下,用户是通过在 ssh 中输入密码来获取验证的,你可以以一个简单的步骤来 使用 Keygen 来设置 ssh 无密码登录 。
注:如果你的系统上不存在 ~/.ssh 目录,那就手动创建它,并设置如下权限:
1 2$ mkdir -p ~/.ssh$ chmod 0700 ~/.ssh
以上的 chmod 命令表明,只有目录属主对该目录有读取、写入和执行权限,这也是 ssh 所要求的设置 。
如何创建用户指定的 SSH 配置文件
该文件并不会被默认创建的,所以你需要使用具有读取/写入权限的用户来创建它 。
1 2$ touch ~/.ssh/config$ chmod 0700 ~/.ssh/config
上述文件包含由特定主机定义的各个部分,并且每个部分只应用到主机定义中相匹配的部分 。
~/.ssh/config 文件的常见格式如下,其中所有的空行和以 ‘#’ 开头的行为注释:
1 2 3 4 5 6 7 8 9 10Host host1ssh_option1=value1ssh_option2=value1 value2ssh_option3=value1Host host2ssh_option1=value1ssh_option2=value1 value2Host *ssh_option1=value1ssh_option2=value1 value2
如上格式详解:
1.Host host1 为关于 host1 的头部定义,主机相关的设置就从此处开始,直到下一个头部定义 Host host2 出现,这样形成一个完整的定义 。
2.host1 和 host2 是在命令行中使用的主机别名,并非实际的远程主机名 。
3.其中,如 sshoption1=value1、sshoption2=value1 value2 等配置选项将应用到相匹配的主机,可以缩进以看起来更整齐些 。
4.对于 ssh_option2=value1 value2 这样的选项,ssh 执行时会按照顺序优先使用 value1 的值 。
5.头部定义 Host * (其中 * 为匹配模式/通配符,匹配零个或多个字符) 会匹配零个或者多个主机 。
仍旧以上述的格式为例,ssh 也是也这样的形式类读取配置文件的 。如果你执行 ssh 命令来访问远程主机 host1,如下:
1$ ssh host1
以上 ssh 命令会进行一下动作:
1.匹配配置文件中主机别名 host1,并使用头部定义中的各个设置项 。
2.继续匹配下一个主机定义,然后发现命令行中提供的主机名没有匹配的了,所以接下来的各个设置项会被略过 。
3.最后执行到最后一个主机定义 Host *,这会匹配所有的主机 。这里,会将接下来的所有设置选项应用到所有的主机连接中 。但是它不会覆写之前已经有主机定义的那些选项 。

推荐阅读