Linux基础——远程访问及控制(SSH)

这篇具有很好参考价值的文章主要介绍了Linux基础——远程访问及控制(SSH)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、OpenSSH服务器

是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性。

SSH优点:
数据传输是加密的,可以防止信息泄漏
数据传输是压缩的,可以提高传输速度

OpenSSH 是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统,CentOS 7 系统默认安装并启动sshd服务
SSH客户端:Putty、Xshell、CRT
SSH服务端:OpenSSH
服务名称: sshd
默认端口号:tcp的22端口
服务端主程序: /usr/sbin/sshd
服务端配置文件: /etc/ssh/sshd_config
客户端配置文件: /etc/ssh/ssh_config

二、sshd_config配置文件

# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER    ##在开启selinux的系统上,修改ssh端口的要修改selinux规则,用此命令修改
#Port 22                                               ##默认ssh端口,生产环境中建议改成五位数的端口 
#AddressFamily any                                     ##地址家族,any表示同时监听ipv4和ipv6地址
#ListenAddress 0.0.0.0                                 ##监听本机所有ipv4地址
#ListenAddress ::                                      ##监听本机所有ipv6地址
HostKey /etc/ssh/ssh_host_rsa_key                      ##ssh所使用的RSA私钥路径
HostKey /etc/ssh/ssh_host_ecdsa_key                    ##ssh所使用的ECDSA私钥路径
HostKey /etc/ssh/ssh_host_ed25519_key                  ##ssh所使用的ED25519私钥路径
SyslogFacility AUTHPRIV                                ##设定在记录来自sshd的消息的时候,是否给出“facility code”
#LogLevel INFO                                         ##日志记录级别,默认为info 
#LoginGraceTime 2m                                     ##限定用户认证时间为2min
#PermitRootLogin yes                                   ##是否允许root账户ssh登录,生产环境中建议改成no,使用普通账户ssh登录
#StrictModes yes                                       ##设置ssh在接收登录请求之前是否检查用户根目录和rhosts文件的权限和所有权,建议开启
#MaxAuthTries 6                                        ##指定每个连接最大允许的认证次数。默认值是 6
#MaxSessions 10                                        ##最大允许保持多少个连接。默认值是 10 
#PubkeyAuthentication yes                              ##是否开启公钥验证
AuthorizedKeysFile      .ssh/authorized_keys           ##公钥验证文件路径
# HostbasedAuthentication                              ##指定服务器在使用 ~/.shosts ~/.rhosts /etc/hosts.equiv 进行远程主机名匹配时,是否进行反向域名查询
#IgnoreUserKnownHosts no                               ##是否在 RhostsRSAAuthentication 或 HostbasedAuthentication 过程中忽略用户的 ~/.ssh/known_hosts 文件
#IgnoreRhosts yes                                      ##是否在 RhostsRSAAuthentication 或 HostbasedAuthentication 过程中忽略 .rhosts 和 .shosts 文件
#PermitEmptyPasswords no                               ##是否允许空密码
PasswordAuthentication yes                             ##是否允许密码验证,生产环境中建议改成no,只用密钥登录
ChallengeResponseAuthentication no                     ##是否允许质疑-应答(challenge-response)认证
#KerberosAuthentication no                             ##是否使用Kerberos认证
#KerberosOrLocalPasswd yes                             ##如果 Kerberos 密码认证失败,那么该密码还将要通过其它的认证机制(比如 /etc/passwd)
#KerberosTicketCleanup yes                             ##是否在用户退出登录后自动销毁用户的 ticket
#KerberosGetAFSToken no                                ##如果使用了AFS并且该用户有一个 Kerberos 5 TGT,那么开启该指令后,将会在访问用户的家目录前尝试获取一个AFS token
GSSAPIAuthentication yes                               ##是否允许基于GSSAPI的用户认证
GSSAPICleanupCredentials no                            ##是否在用户退出登录后自动销毁用户凭证缓存
UsePAM yes                                             ##是否通过PAM验证
#GatewayPorts no                                       ##是否允许远程主机连接本地的转发端口
X11Forwarding yes                                      ##是否允许X11转发
#X11DisplayOffset 10                                   ##指定sshd(8)X11转发的第一个可用的显示区(display)数字。默认值是10
#X11UseLocalhost yes                                   ##是否应当将X11转发服务器绑定到本地loopback地址
#PrintMotd yes                                         ##指定sshd(8)是否在每一次交互式登录时打印 /etc/motd 文件的内容
#PrintLastLog yes                                      ##指定sshd(8)是否在每一次交互式登录时打印最后一位用户的登录时间
#TCPKeepAlive yes                                      ##指定系统是否向客户端发送 TCP keepalive 消息
#UseLogin no                                           ##是否在交互式会话的登录过程中使用 login(1
#UsePrivilegeSeparation sandbox                        ##是否让 sshd(8) 通过创建非特权子进程处理接入请求的方法来进行权限分离
#PermitUserEnvironment no                              ##指定是否允许sshd(8)处理~/.ssh/environment以及 ~/.ssh/authorized_keys中的 environment= 选项
#Compression delayed                                   ##是否对通信数据进行加密,还是延迟到认证成功之后再对通信数据加密
#ClientAliveInterval 0                                 ##sshd(8)长时间没有收到客户端的任何数据,不发送"alive"消息 
#ClientAliveCountMax 3                                 ##sshd(8)在未收到任何客户端回应前最多允许发送多个"alive"消息,默认值是 3 
#UseDNS no                                             ##是否使用dns反向解析
#PidFile /var/run/sshd.pid                             ##指定存放SSH守护进程的进程号的路径
#MaxStartups 10:30:100                                 ##最大允许保持多少个未认证的连接
#PermitTunnel no                                       ##是否允许tun(4)设备转发
#Banner none                                           ##将这个指令指定的文件中的内容在用户进行认证前显示给远程用户,默认什么内容也不显示,"none"表示禁用这个特性
Subsystem    sftp    /usr/libexec/openssh/sftp-server  ##配置一个外部子系统sftp及其路径
#Match User anoncvs                                    ##引入一个条件块。块的结尾标志是另一个 Match 指令或者文件结尾     
AllowUsers                                             ##设置白名单,需手动添加
DenyUsers                                              ##设置黑名单,需手动添加

三、SSH服务端

ssh服务端主要包括两个服务功能:ssh远程连接和sftp服务.
作用:SSHD服务使用SSH协议可以用来远程控制,或在计算机之间传送文件
相比较之前用Telent方式传输文件要安全很多,因为Telent是明文件传输,SSH是加密传输

1.查询版本—— ssh -V

Linux基础——远程访问及控制(SSH)

2.SSH远程登录

语法:ssh [远程主机用户名] @[远程服务器主机名或IP地址] -p port

Linux基础——远程访问及控制(SSH)

语法:ssh -l [远程主机用户名] [远程服务器主机名或IP地址] -p port

Linux基础——远程访问及控制(SSH)

3.监听端口修改

Linux基础——远程访问及控制(SSH)
重启服务:systemctl restart sshd
使用另一台客户机进行远程登录
Linux基础——远程访问及控制(SSH)

4.设置黑白名单

Linux基础——远程访问及控制(SSH)
Linux基础——远程访问及控制(SSH)

5.远程复制——scp

Linux基础——远程访问及控制(SSH)

6.安全性传输——sftp

Linux基础——远程访问及控制(SSH)

四、SSH服务的验证

1.SSH服务的两种验证方式

当密码验证和密钥验证同时开启时,服务器会优先使用密钥对验证

密码验证

对服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但从客户端角度来看,正在连接的服务器有可能会被假冒;从服务器角度来看,当遭遇密码暴力破解攻击时防御能力较弱。

密钥验证

密钥对验证:要求提供相匹配的密钥才能进行验证通过,通常先在客户端中创建一对密钥文件(公钥和私钥),然后将公钥文件放到服务器中指定位置,远程登录时,系统会使用公钥和私钥进行加密/解密关联验证,增加安全性,且可以免密交互登录。

3.公钥与私钥的关系

公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密
不能根据一个密钥来推算另一个密钥
公钥对外公开,私钥只有私钥持有人才知道

4.在客户端创建密钥对

通过ssh-keygen 工具为当前用户创建密钥对文件。可用的加密算法为:RSA、ECDSA、或DSA等(-t是指定算法类型)

Linux基础——远程访问及控制(SSH)
Linux基础——远程访问及控制(SSH)

5.免交互验证

Linux基础——远程访问及控制(SSH)
Linux基础——远程访问及控制(SSH)

五、TCP Wrappers 访问控制

在Linux系统中,许多网络服务针对客户端提供了访问控制机制,如Samba、BIND、HTTPD、OpenSSH 等TCP wrappers将TCP服务程序"包裹"起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。

1.TCP wrappers (TCP封套)

将tcp服务程序包裹起来,代为监听tcp服务程序的端口,增加了一个安全检测过程,外来的连接请求必须通过这层安全检测,获得许可后才能进访问真正的服务程序,TCP Wrappers 是大部分Linux 发行版默认提供的功能

2.TCP Wrappers 保护机制的实现方式

1.直接使用tcpd程序对其他服务程序进行保护,需要运行tcpd程序。
2.由其他网络服务程序调用libwrap.so.*链接库,不需要运行tcpd程序。此方式的应用更加广泛,也更有效率。

  • 使用 ldd 命令可以查看程序的libwrap.so.*链接库
    Linux基础——远程访问及控制(SSH)

3.TCP Wrappers 访问策略

  • 为各种网络服务程序,针对访问服务的客户端地址进行访问控制,对应的策略文件为 /etc/hosts.allow/etc/hosts.deny分别来设置允许和拒绝访问
    语法:[服务程序列表]:[客户端地址列表]

  • 先检查 /etc/hosts.allow 文件,密钥则检查 /etc/hosts.deny 文件,若都没有相匹配的策略,则全部允许访问文章来源地址https://www.toymoban.com/news/detail-425288.html

到了这里,关于Linux基础——远程访问及控制(SSH)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【VsCode】SSH远程连接Linux服务器开发,搭配cpolar内网穿透实现公网访问(1)

    远程连接服务器的工具有很多,比如XShell、putty等,可以通过ssh来远程连接服务器,但这用于写代码并不方便,可能需要现在本地写好代码后再将源代码传送到服务器运行、服务器上的图片也无法直接查看。 而vscode可以很好的解决这些问题,它的核心组件都运行在远程环境中

    2024年02月11日
    浏览(60)
  • 远程访问及控制——SSH

    配置Openssh服务端 使用SSH客户端程序 密钥对验证的SSH体系 SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。 SSH 默认使用的端口号是 22。. 大多现代的 Linux 系统 22 端口都是开放的。. 如果你运行 ssh 程序而没有指定端口

    2024年02月10日
    浏览(35)
  • 远程访问及控制(SSH)

    引言: 简单来说,SSH是一种网络协议,主要用于客户端和远程主机的安全连接和交互;在生产环境中尤为重要,为了远程操控的安全性,设置公钥和私钥,不仅防止某些暴力破解,也大大增强远程主机被操控的安全问题,防止不知名用户登陆操作 1.SSH是什么: SSH(Secure Shell)是

    2023年04月25日
    浏览(33)
  • 远程访问及控制ssh

    SSH(Secure Shell) 协议 是一种安全通道协议。主要用来实现字符界面的远程登录、远程复制等功能。 对通信数据进行了加密处理,用于远程管理其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性------------(同样的telnet效果也ssh相似,但telnet是明文传输,安全性

    2024年02月01日
    浏览(39)
  • SSH远程访问及控制

    SSH(Secure Shell)是一种安全通道协议,主要用于实现字符界面的远程登录、远程复制、类似于ftp功能。以上三个默认端口都是22,可修改 SSH协议对通信双方的数据传输进行了加密处理,包括用户登录的口令输入 SSH的数据传输基于TCP协议,对数据传输加密、压缩,从而提高传输

    2024年02月03日
    浏览(33)
  • SSH服务远程访问及控制

    目录 1、SSH服务 1.1、配置OpenSSH 1.2、SHH远程登录方式 2、服务配置与管理 安全调优 3、sshd 服务支持两种验证方式 3.1、公钥和私钥的关系 3.2、构建密钥对验证的SSH原理 3.3、配置密钥的验证 4、scp远程复制 5、sftp安全性传输 6、TCP Wrappers 访问控制 7、总结 引言:SSH是什么?SSH(

    2023年04月16日
    浏览(42)
  • 内网穿透:在家远程ssh访问学校内部网服务器

    cpolar官网注册即可(邮箱即可) cpolar支持http/https/tcp协议,不限制流量(花生壳免费只能使用1G流量),也不需要公网ip,只要在服务器上安装客户端即可配置,免费,当然也有付费,但我们只需购买0元的免费版本即可,带宽1M,如果需要更大的带宽可以升级套餐。 用一键自

    2024年01月24日
    浏览(43)
  • 如何使用 SSH 远程控制一台 Windows 服务器

    查了一下,Windows 上其实也是有 SSH 服务器的,只不过默认是没有装的,这里只需要安装一个 OpenSSH 服务器就好了。 Win10 的话,就在设置里面可以安装,从开始菜单打开“设置”,然后选择应用和功能,这里就有一个“管理可选功能”的选项。 应用和功能页面 点击之后便可以

    2024年02月05日
    浏览(71)
  • SSH远程连接macOS服务器:通过cpolar内网穿透技术实现远程访问的设置方法

    macOS系统自带有Secure Shell 客户端,它可让您登录到侦听传入SSH连接的远程服务器和台式机。我们可以用 ssh username@ip 来ssh到服务器,但通常局限于局域网内的远程。 本次教程,我们将使用cpolar内网穿透工具,映射ssh服务默认端口:22端口,获取公网地址,实现在公网环境下的

    2024年02月10日
    浏览(59)
  • 【VScode】Remote-SSH XHR failed无法访问远程服务器

    当使用VScode连接远程服务器时,往往需要使用Remote-SSH这个插件。而该插件有一个小bug,当远程服务器网络不佳时容易出现。 在控制台会出现下述语句: 该插件在连接远程服务器时,插件会在服务器端自动运行一个脚本。该脚本的主要内容是检查服务器的vscode-server的运行情况

    2024年02月14日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包