Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux远程访问及控制

Linux远程访问及控制方式

作者:活老鬼

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

一、SSH远程管理

1. SSH概述

SSH(Secure Shell)协议

OpenSSH

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

2.SSH的优点

3.配置OpenSSH客户端

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

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]-----+

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 概述

格式:

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

(1) 服务程序列表:

(2) 客户端地址列表:

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.登录

成功登录且不用输入密码

总结

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

您可能感兴趣的文章:
阅读全文