前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux自定义SSH连接以简化远程访问

linux自定义SSH连接以简化远程访问

作者头像
入门笔记
发布2022-06-02 16:08:56
1.6K0
发布2022-06-02 16:08:56
举报
文章被收录于专栏:入门小站

SSH (SSH client) 是一个远程访问服务器的程序,它使用户能够在远程主机上执行命令。它是最推荐的远程登录主机的方法之一,因为它旨在通过不安全的网络在两个不受信任的主机之间提供安全的加密通信。

SSH使用系统范围和用户特定(自定义)配置文件。在本教程中,我们将解释如何创建自定义ssh配置文件并使用某些选项连接到远程主机。

SSH 客户端配置文件

ssh客户端配置文件的位置:

  1. /etc/ssh/ssh_config这是默认的、系统范围的配置文件。它包含适用于ssh客户端计算机的所有用户的设置。
  2. ~/.ssh/config$HOME/.ssh/config 是特定于用户的自定义配置文件。它具有适用于特定用户的配置。因此,它会覆盖系统范围配置文件中的默认设置。这是我们将创建和使用的文件。

默认情况下,用户在ssh中使用密码进行身份验证,但是,你可以通过5个简单的步骤使用ssh keygen设置ssh无密码登录。

Note:如果~/.ssh在家目录不存在,需要创建一下。

代码语言:javascript
复制
$ mkdir -p ~/.ssh
$ chmod 0700 ~/.ssh

如何创建用户特定的SSH配置文件

默认情况下通常不会创建此文件,因此你需要仅使用用户的读/写权限创建它。

代码语言:javascript
复制
$ touch ~/.ssh/config
$ chmod 0700 ~/.ssh/config

~/.ssh/config格式如下,所有空行以及以#开头的行都被视为注释:

代码语言:javascript
复制
Host    host1
 ssh_option1=value1
 ssh_option2=value1 value2
 ssh_option3=value1 

Host    host2
 ssh_option1=value1
 ssh_option2=value1 value2

Host  *
 ssh_option1=value1
 ssh_option2=value1 value2

从上面的格式:

  1. Host host1:标题是 host1
  2. host1, host2:只是在命令行上使用的主机别名,它们不是远程主机的实际主机名。
  3. 对于一个选项,例如 ssh_option2=value1 value2, 首先用value1,然后用value2.
  4. Host *(其中*是模式 - 匹配零个或多个字符的通配符)将匹配零个或多个主机。

执行ssh命令远程访问host1

代码语言:javascript
复制
$ ssh host1

上面的ssh命令将执行以下操作:

  1. 匹配host1配置段
  2. 继续尝试匹配host2, 但是host1不能匹配上host2,因此此处未使用任何选项。
  3. 进入最后一项, Host *,匹配所有主机。这里是一些通用的配置。但它不能覆盖上一项中已经使用的任何选项值。

如何使用用户特定的SSH配置文件

了解ssh客户端配置文件的工作原理,你就可以按如下方式创建它。

编辑配置文件:

代码语言:javascript
复制
$ vi ~/.ssh/config
Host fedora25
        HostName 192.168.1.111
        Port 22
        ForwardX11 no

Host centos7
        HostName 192.168.1.112
        Port 22
        ForwardX11 no

Host ubuntu
        HostName 192.168.1.113
        Port 23
        ForwardX11 yes

Host *
        User rumenz
        IdentityFile ~/.ssh/id_rsa
        Protocol 2
        Compression yes
        ServerAliveInterval 60
        ServerAliveCountMax 20
        LogLevel INFO

以上ssh配置选项的详细说明。

  1. HostName – 定义要登录的真实主机名,或者,你可以使用数字IP地址
  2. User – 指定登录的用户。
  3. Port – 设置远程主机上连接的端口号,默认为22. 使用远程主机的 sshd 配置文件中配置的端口号。
  4. Protocol– 此选项按优先顺序定义 ssh 应支持的协议版本。通常的值是12, 多个版本必须以逗号分隔。
  5. IdentityFile – 指定从中读取用户的DSA、Ed25519、RSA 或 ECDSA 认证身份的文件。
  6. ForwardX11– 定义X11连接是否将通过安全通道和DISPLAY集自动重定向。它有两个可能的值yes 或者 no.
  7. Compression – 它用于在与远程连接期间设置压缩。默认是no.
  8. ServerAliveInterval– 以秒为单位设置超时间隔,如果没有收到来自服务器的响应(或数据),ssh将通过加密通道发送消息以请求服务器的响应。默认值为0,意味着不会向服务器发送消息。
  9. ServerAliveCountMax – 设置可以在ssh未收到服务器任何响应的情况下发送的服务器活动消息的数量。
  10. LogLevel– 定义从ssh记录消息时使用的详细级别。允许的值包括:QUIET、FATAL、ERROR、INFO、VERBOSE、DEBUG、DEBUG1、DEBUG2 和 DEBUG3。默认值为 INFO。

一般我们可以用以下命令链接到远程服务器

代码语言:javascript
复制
$ ssh -i ~/.ssh/id_rsa -p 22 rumenz@192.168.1.112

但是,通过使用ssh客户端配置文件,我们可以简单输入以下命令:

代码语言:javascript
复制
$ ssh centos7

你可以在ssh客户端配置手册页中找到更多选项和用法示例:

代码语言:javascript
复制
$ man ssh_config

相关文章

ssh常用命令总结

linux如何设置无密码SSH登录

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

本文分享自 入门小站 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SSH 客户端配置文件
  • 如何创建用户特定的SSH配置文件
  • 如何使用用户特定的SSH配置文件
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档