【Linux网络服务】SSH远程访问及控制

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 【Linux网络服务】SSH远程访问及控制,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

一、openssh服务器

1.1ssh协议

  • SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能;

  • SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令;

  • SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。

  • SSH客户端<————–网络—————->SSH服务端

  • 数据传输是加密的,可以防止信息泄漏

  • 数据传输是压缩的,可以提高传输速度

1.2openssh

  • openssH 是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统。
  • Centos 7系统默认已安装openssh相关软件包,并已将 sshd 服务添加为开机自启动。
  • 执行”systemctl start sshd”命令即可启动 sshd 服务
  • sshd 服务默认使用的是TCP的 22端口
  • sshd 服务的默认配置文件是/etc/ssh/sshd_config
  • ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于前者是针对客户瑞的配置文件,后者则是针对服务端的配置文件。

客户端常用的ssh连接软件

  • Linux Client: ssh, scp, sftp,slogin ,

  • Windows Client:xshell, MobaXterm,putty, securecrt ,telnet

  • 服务名称 : sshd

  • 服务端主程序: /usr/sbin/sshd

  • 服务端配置文件 : /etc/ssh/sshd_config

  • 客户端配置文件: /etc/ssh/ssh_config

二、配置openssh服务端

2.1sshd_config配置文件的常用选项

vim /etc/ssh/sshd config
Port 22 #监听端口为 22
ListenAddress 0.0.0.0  #监听地址为任意网段,也可以指定openSSH服务器的具体IP
LoqinGraceTime 2m  #登录验证时间为 2 分钟
PermitRootLoqin no   #禁止: root 用户欲录
MaxAuthTries 6    #最大重试次数为 6
PexmitEmptyPasswords no  #禁止空密码用户录
UseDNs no   #禁用 DNS 反向解析,以提高服务器的响应速度
PubkeyAuthentication yes #开启密钥对验证

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、设置白名单与黑名单的两种方法

2.1方法一:修改sshd_config文件

  • Allowusers 添加白名单
  • DenyUsers添加黑名单
  • 白名单与黑名单不可以同时使用
    白名单
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    黑名单
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2.2方法二:设置TCP Wrappers访问策略

2.2.1TCP Wrappers保护机制的方式

  • 由其他网络服务程序调用 libwrap.so.*链接库,不需要运行 tpd 程序。此方式的应用更加泛,也更有效率。
  • 使用 ldd 命令可以查看程序的 ibwrap.so.*链接库Idd $(which ssh)

2.2.2访问策略

  • TCP Wrappers 机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。
  • 对应的两个策略文件为/etc/hosts.allow 和/etc/hosts.deny,分别用来设置允许和拒绝的策略

2.2.3格式

  • <服务程序列表>:<客户端地址列表>
    (1) 服务程序列表
  • ALL:代表所有的服务。
  • 单个服务程序:如”vsftpd”
  • 多个服务程序组成的列表: 如rvsftpd,sshd”。

(2)客户端地址列表

  • ALL:代表任何客户端地址。
  • LOCAL:代表本机地址。
  • 多个地址以逗号分隔
  • 允许使用通配符 “*”和“?”,前者代表任意长度字符,后者仅代表一个字符
  • 网段地址,如“192.168.80.” 或者 192.168.80.0/255.255.255.0

2.24设置白名单与黑名单

查看哪些tcp服务可以被wrappers保护

  • Idd $(which ssh)

在这里插入图片描述
白名单

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 黑名单相反即可,TCP Wrappers会先读取allow文件,如果有则直接允许通过,然后在读取deny文件,如果有则拒绝访问,如果都没有则允许通过

三、scp、sftp服务

3.1scp远程复制

下行复制:将远程主机中的文件复制到本机

在这里插入图片描述
上行复制
在这里插入图片描述
注:复制目录要加-r,加端口号要加-P ,如果有同名文件会直接覆盖不提醒

3.2sftp 远程文件传输协议

  • 由于使用了加密/解密技术,所以传输效率比普通的FTP要低,但安全性更高。操作语法sftp与ftp几乎一样。
sftp> ls
sftp> get 文件名  #下载文件到ftp目录
sftp> put 文件名  #上传文件到ftp目录
sftp> quit		 #退出

在这里插入图片描述

四、配置密钥对验证

(1)在客户端创建密钥对
ssh-keygen -t rsa
-t指定算法类型

在这里插入图片描述

(2)把公钥文件发送给服务端主机,即可完成密钥验证登录

ssh-copy-id -i id_rsa.pub dn@192.168.243.99
 # ssh-copy-id 可以指定在指定用户的家目录中生成公钥文件的目录和文件,并且目录权限700,文件权限600,只有这样密钥验证才能使用
 # -i 指定公钥文件

在这里插入图片描述
在这里插入图片描述

(3)客户端主机即可通过密钥验证登录,无需输出密码,密钥验证时一对一的,安全性比密码登录更高

在这里插入图片描述

4.2无交互式密钥登录的种方法

方法一:

  • 在生成密钥文件时设置私钥密码为空即可完成免交互登录
    方法二:
    通过创建ssh会话代理 (只在当前会话有效)
ssh-agent bash
ssh-add

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/148416.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!