Linux远程访问及控制方式

 更新时间:2024年09月13日 16:34:30   作者:活老鬼  
SSH(Secure Shell)是一种协议,用于安全地通过不安全的网络进行远程登录和其他网络服务,OpenSSH是SSH协议的一种开源实现,它支持数据加密,能有效防止信息泄露,适用于多种操作系统,SSH配置包括服务端和客户端,可以通过密码或密钥对验证方式进行身份验证

一、SSH远程管理

1. SSH概述

SSH(Secure Shell)协议

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

OpenSSH

OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX、Linux操作系统。

  • 服务名称:sshd
  • 默认端口号:22
  • 服务端主程序:/usr/sbin/sshd
  • 服务端配置文件:/etc/ssh/sshd_config
  • 客户端配置文件:/etc/ssh/ssh_config

2.SSH的优点

  • SSH是较可靠,专为远程登录会话和其他网络服务提供安全性的协议
  • 利用SSH协议可以有效防止远程管理过程中的信息泄露问题
  • SSH最初是Unix系统中的一个程序,后来又迅速扩展到其他操作平台
  • SSH在正确使用时可弥补网络中的漏洞
  • 数据传输的过程是加密的,具有安全稳定的特点
  • 数据传输的方式是压缩的,可以提高传输速度

3.配置OpenSSH客户端

  • shd_config配置文件的常用选项设置
vi /etc/ssh/sshd_config

......
Port 22    #监听端口为 22
ListenAddress 0.0.0.0    #监听地址为任意网段,也可以指定OpenSSH服务器的具体IP
LoginGraceTime 2m    #登录验证时间为 2 分钟
PermitRootLogin no    #禁止 root 用户登录
MaxAuthTries 6    #最大重试次数为 6

PermitEmptyPasswords no    #禁止空密码用户登录
UseDNS no    #禁用 DNS 反向解析,以提高服务器的响应速度

AllowUsers zhangsan lisi wangwu@61.23.24.25
#只允许zhangsan、lisi、wangwu用户登录,且其中wangwu用户仅能够从IP地址为61.23.24.25的主机远程登录

DenyUsers zhangsan
#禁止某些用户登录,用法于AllowUsers类似(注意不要同时使用)

4.sshd服务支持的两种验证方式

密码验证

  • 对服务器中本地系统用户的登录名称、密码进行验证。
  • 简便,但可能会被暴力/破解

密钥对验证

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

5. 使用SSH客户端程序

5.1 ssh - 远程登录

ssh "选项" "用户名"@"ip\名称"

例: ssh -p 1022 zhangsan@20.0.0.13

# "-p"指定端口号

5.2 scp - 远程复制

  • 下行复制:
scp "用户名"@"ip/名称":"被复制的远程主机文件路径" "复制到的本机文件路径"

例:scp root@20.0.0.13:/etc/passwd /root/passwd10.txt
  • 上行复制:
scp "被复制的本机文件路径" "用户名"@"ip\名称":"复制到的远程主机文件路径"

例:scp /root/passwd root@20.0.0.13:/etc/passwd10.txt
  • "-r"选项:递归复制目录
  • "-P"选项:指定端口号

6.配置密钥对验证

1.在客户端使用ssh-keygen工具创建密钥对文件(可用的加密算法为RSA、ECDSA、DSA等)

ssh-kegen -t rsa

#"-t"选项:指定加密算法类型
[root@wzx ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):    #指定私钥位置(回车默认)
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):    #设置私钥密码(回车默认)
Enter same passphrase again:    #确认输入(回车默认)
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:GqXMgBqBoMByselDeDiNraMgVv17fJrXb7FQ0NHGl5o root@wzx
The key's randomart image is:
+---[RSA 2048]----+
|B ..          .o+|
|=O.+.        . o=|
|O.O...  .     +..|
| O.  +.o     E . |
|*.o   =.S     .  |
|=. .   oo    . . |
|.     .. o .. . o|
|        . +. . o |
|         o.   o. |
+----[SHA256]-----+
  • 生成的私钥、公钥文件默认存放在宿主目录中的隐藏目录.ssh/下

2.将公钥文件上传至服务器

ssh-copy-id root@20.0.0.12

"-i"选项:指定密钥文件
[root@wzx ssh]# ssh-copy-id root@20.0.0.12
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '20.0.0.12 (20.0.0.12)' can't be established.
ECDSA key fingerprint is SHA256:1R40yTT7DYnXgxAb8W4TabvlPcU9038lLVjDrQqnpnA.
ECDSA key fingerprint is MD5:03:ae:25:33:8f:08:48:80:85:d4:3a:73:f2:49:83:a4.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@20.0.0.12's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@20.0.0.12'"
and check to make sure that only the key(s) you wanted were added.

3.使用密钥对验证登录

ssh root@20.0.0.12

[root@wzx ssh]# ssh root@20.0.0.12
Last login: Mon Aug 19 23:47:41 2024 from 20.0.0.1

二、TCP Wrappers访问控制

1.TCP Wrappers 概述

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

格式:

"服务程序列表":"客户端地址列表"

(1) 服务程序列表:

  • ALL:代表所有的服务
  • 单个服务程序:如"vsftpd"
  • 多个服务程序组成的列表:如"vsftpd.sshd"

(2) 客户端地址列表:

  • ALL:代表任何客户端地址
  • LOCAL:代表本机地址
  • 多个地址以逗号分隔
  • 允许使用通配符"*"、"?",
  • 网段地址,如 192.168.20. 或 192.168.20.0/255.255.255.0
  • 区域地址,如".benet.com"

2. TCP Wrappers 机制的基本原则

首先检查/etc/hosts.allow(白名单)文件,如果找到相匹配的策略,则允许访问;

否则继续检查/etc/hosts.deny(黑名单)文件,如果找到相匹配的策略,则拒绝访问;

如果检查上述两个文件都找不到相匹配的策略,则运行访问。

  • 允许所有,拒绝个别:

只需在/etc/hosts.deny文件中添加相应的拒绝策略

  • 允许个别,拒绝所有:

除了在/etc/hosts.allow中添加允许策略之外,还需要再/etc/hosts.deny文件中设置"ALL:ALL"的拒绝策略。

三、对称密钥与非对称密钥

1.对称密钥(Symmetric Key)

对称密钥加密,又称为私钥加密或会话密钥加密算法,是一种加密和解密使用相同密钥或可以相互推算的密钥对的加密方式。

优点:

  • 加解密速度快,适合处理大量数据

缺点:

  • 密钥管理困难,泄露风险大

2.非对称密钥(Asymmetric Key)

非对称密钥加密,又称为公钥密钥加密,它需要使用一对密钥来分别完成加密和解密操作。这对密钥包括一个公钥和一个私钥,公钥可以公开发布,而私钥则由用户自己秘密保存。

优点:

  • 泄露风险低

缺点:

  • 加解密速度慢

四、在终端中使用私钥文件登录服务器

1.在服务端中生成密钥

[root@wzx ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xfbf6ZBU+BSvX7kPn4Pyu//Ug5kvOiZI2m6Bndv77Qg root@wzx
The key's randomart image is:
+---[RSA 2048]----+
|               . |
|         .    . o|
|          +  . o.|
|         o .  +..|
|      o S   ...o.|
|     . =    ..=o=|
|      + =E   *++=|
|     . = o.+oo+=+|
|      o. .=+**==*|
+----[SHA256]-----+

2.将id_rsa私钥文件导出到客户端(可使用ftp工具等)

3.找到公钥文件并追加到authorized_keys文件内

[root@wzx ~]# cd .ssh
[root@wzx .ssh]# ls
id_rsa  id_rsa.pub
[root@wzx .ssh]# cat id_rsa.pub >> authorized_keys
[root@wzx .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub
[root@wzx .ssh]# cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6bCV0EHdsXSD83CG4iNl81D1vDLiuywSsbj+3ANQOK4qRWNPOHfOIBXGANZQsT+33CrJY4ZvFnvcIeWpS+/fYyFnTekHPzuOROzcZYfkBxm1SB7YM5pLnHr8YdyUCOaYUhLYBuBixm80l1QvVOPnNRkKgzcOsOQSpOihGXgAa2d7lbOnr8UOO/aJ/6FQ2xxcCEcP9sG3h/uvCi7BP430XQPmfVksRm/tR+8sPNJNzioXgIoh5Sc6Rqp2C1IC3Krx3um4FCyqJJZJ6I7uY74g+L/Nt7IT3qTr13zVVjEAktNV0zMvdxRTNnIzEWTrhwEDASzJs3ewDjv1FESGErHTH root@wzx

4.配置sshd_config文件

ot@wzx .ssh]# vim /etc/ssh/sshd_config 

......
PubkeyAuthentication yes    #启用公钥验证
......

[root@wzx .ssh]# systemctl restart sshd    #重启刷新配置

5.在终端中设置私钥登录

6.登录

成功登录且不用输入密码

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用Apache ab工具对Apache服务器进行简单的压力测试

    使用Apache ab工具对Apache服务器进行简单的压力测试

    这篇文章主要介绍了使用Apache ab工具对Apache服务器进行简单的压力测试的方法,文中还对如何查看当前Apache的连接数的方法作了介绍,需要的朋友可以参考下
    2016-03-03
  • 阿里云云服务器Linux系统挂载数据盘图文教程

    阿里云云服务器Linux系统挂载数据盘图文教程

    这篇文章主要介绍了阿里云云服务器Linux系统挂载数据盘图文教程,阿里云服务器一般需要购买额外的数据盘,本文就讲解如何挂载使用额外的数据盘,需要的朋友可以参考下
    2014-09-09
  • Linux下升级python和安装pip的详解

    Linux下升级python和安装pip的详解

    今天小编就为大家分享一篇关于Linux下升级python和安装pip的详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Apache 认证总结

    Apache 认证总结

    经常上网的读者会遇到这种情况:访问一些网站的某些资源时,浏览器弹出一个对话框,要求输入用户名和密码来获取对资源的访问。
    2009-05-05
  • LNMP系列教程之 解决sendmail不能发送邮件问题

    LNMP系列教程之 解决sendmail不能发送邮件问题

    客户需要验证邮件注册用户我发现邮件发送不了。一般的主机我用过,直接在dz后台开启就可以实现。查阅相关资料应该是sendmail不能发送邮件导致的。那我们如何解决呢
    2012-09-09
  • Linux基础:如何找出你的系统所支持的最大内存

    Linux基础:如何找出你的系统所支持的最大内存

    这篇文章主要介绍了Linux基础:如何找出你的系统所支持的最大内存,需要的朋友可以参考下
    2015-04-04
  • 详解Linux系统如何防止TCP洪水攻击

    详解Linux系统如何防止TCP洪水攻击

    本篇文章主要介绍了详解Linux系统如何低于TCP洪水攻击,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Linux下性能分析工具Perf安装与用法

    Linux下性能分析工具Perf安装与用法

    perf是Linux下的一款性能分析工具,能够进行函数级与指令级的热点查找,它由一个叫“Performance counters“的内核子系统实现,可用于性能瓶颈的查找与热点代码的定位,本文给大家介绍了Linux Perf安装与使用,需要的朋友可以参考下
    2024-05-05
  • 利用rsync自动备份 完全配置方法 增加了ip限制

    利用rsync自动备份 完全配置方法 增加了ip限制

    利用rsync自动备份 完全配置,一些细节也做到了,对于比较熟悉rsync的朋友应用,限制了ip相对来说安全增加了。
    2009-09-09
  • 详解CentOS6.8 安装FTP及添加用户

    详解CentOS6.8 安装FTP及添加用户

    本篇文章主要介绍了详解CentOS6.8 安装FTP及添加用户 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05

最新评论