欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

荐 远程访问及控制实验

程序员文章站 2022-05-04 12:21:56
文章目录远程访问及控制一:SSH远程管理1.1**:配置Open SSH服务端**1.1.1:SSH协议1.1.2:OpenSSH服务1.1.2.1 OpenSSH1.1.2.2服务监听选项二:用户登录控制2.1普通的口令登录方式2.2限制账号登录2.3**测试最大密码重试次数**2.4设置黑白名单2.4.1白名单三:**远程配对密钥验证**开启密钥对功能3.1客户端3.2 开启bash代理,免去重复输入秘钥的麻烦3.3**scp远程安全复制**3.3.1 拷贝文件到主服务器3.3.2查看拷贝过去的文件*3...

远程访问及控制

一:SSH远程管理

1.1**:配置Open SSH服务端**

1.1.1:SSH协议

默认端口:TCP 22

是一种安全通道协议

对通信数据惊醒了加密处理,用于远程管理

1.1.2:OpenSSH服务

1.1.2.1 OpenSSH

服务名称:sshd

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

服务端配置文件:/etc/ssh/sshd_config
ssh_config:客户端配置文件
sshd_config:服务端配置文件

1.1.2.2服务监听选项

端口号,协议版本,监听IP地址

禁用反向解析

[root@server ~]# vim /etc/ssh/sshd_config
#Port 22
#AddressFamily any   '端口号可以修改,只要不冲突,但不建议改‘
#ListenAddress 0.0.0.0      监听地址可修改    
#ListenAddress ::

二:用户登录控制

2.1普通的口令登录方式

下面看一下默认的的22端口,普通的口令登录方式,本服务器IP20.0.0.42
在客户机上远程登录主机IP20.0.0.41

[root@client ~]# ssh root@20.0.0.41
root@20.0.0.41's password: 
Permission denied, please try again.
root@20.0.0.41's password: 
Last failed login: Mon Jul 13 08:52:16 CST 2020 from 20.0.0.42 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Mon Jul 13 08:01:46 2020 from 20.0.0.1
[root@server ~]# 已切换到服务端

远程创建文件夹

[root@server ~]# cd /opt
[root@server opt]# touch 123.txt

到主机端查看在远程上创建的文件夹

荐
                                                        远程访问及控制实验

2.2限制账号登录

2.2.1不允许对方远程root账号登录

vim /etc/ssh/sshd_config

Authentication:

#LoginGraceTime 2m   登录验证时间2分钟
PermitRootLogin no     不允许远程root账号登录
#StrictModes yes       
#MaxAuthTries 6        最大尝试次数6次
#MaxSessions 10      最大会话窗口10个

重启服务

systemctl restart sshd

测试

2.2.2在客户端用roo账号尝试登录服务端

[root@server opt]# ssh root@20.0.0.41
The authenticity of host '20.0.0.41 (20.0.0.41)' can't be established.
ECDSA key fingerprint is SHA256:X/subAZrjeEGTOEQ8wxYrsYnE5Ug2Wbg8V0jeiRBVW0.
ECDSA key fingerprint is MD5:e2:49:48:9c:89:35:ac:73:a5:bb:52:3a:f5:f5:36:8d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '20.0.0.41' (ECDSA) to the list of known hosts.
root@20.0.0.41's password: 
Permission denied, please try again.
root@20.0.0.41's password: 
Permission denied, please try again.
root@20.0.0.41's password: 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

root账号登录不了,但能尝试三次登录三次,因为默认是三次

2.2.3创建三个测试账号,并面交互设置密码

[root@server ~]# useradd test01
[root@server ~]# echo "123123"|passwd --stdin test01
更改用户 test01 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@server ~]# useradd test02
[root@server ~]# echo "123123"|passwd --stdin test02
更改用户 test02 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@server ~]# useradd test03
[root@server ~]# echo "123123"|passwd --stdin test03
更改用户 test03 的密码 。
passwd:所有的身份验证令牌已经成功更新。

在客户端用test01连接服务端,然后在切换root账号

root@server opt]# ssh test01@20.0.0.41
test01@20.0.0.41's password: 
[test01@server ~]$ su - root
密码:
上一次登录:一 7月 13 08:52:24 CST 2020从 20.0.0.42pts/1 上
最后一次失败的登录:一 7月 13 09:27:51 CST 2020从 serverssh:notty 上
最有一次成功登录后有 3 次失败的登录尝试。
[root@server ~]#
上一次登录:一 7月 13 09:40:20 CST 2020pts/2 上
[root@server ~]# 

发现虽然设置了进制远程登录root账号,但是可以通过登录其他被允许的账号在切换到root账号。在生产环境中不安全,故需要PAM模块。

解决方案:启用PAM验证

[root@server ~]# vim /etc/pam.d/su

荐
                                                        远程访问及控制实验

2.3测试最大密码重试次数

[root@server ~]# vim /etc/ssh/sshd_config

荐
                                                        远程访问及控制实验

[root@server ~]# systemctl restart sshd 重启服务

远程登录服务器root账号

[root@server opt]# ssh root@20.0.0.41
root@20.0.0.41's password: 
Permission denied, please try again.
root@20.0.0.41's password: 
Permission denied, please try again.
root@20.0.0.41's password: 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

发现只可以尝试三次

设置最大尝试次数为7次

2.4设置黑白名单

AllowUsers(白名单,仅允许,只有这些可以登录)

DenyUsers(黑名单,仅拒绝,只有这些不行)

AllowUsers不可与DenyUsers同时使用

[root@server ~]# vim /etc/ssh/sshd_config
[root@server ~]# systemctl restart sshd

2.4.1白名单

荐
                                                        远程访问及控制实验

在20.0.0.42上登录test02 能登录

[root@client ~]# ssh test02@20.0.0.41
test02@20.0.0.41's password: 
Last login: Mon Jul 13 10:28:46 2020 from 20.0.0.42
[test02@client ~]$ 

在20.0.0.42上登录test03 能登录

[root@client ~]# ssh test03@20.0.0.41
test03@20.0.0.41's password: 
Last login: Mon Jul 13 10:41:31 2020 from 20.0.0.43
[test03@client ~]$ ^C

在20.0.0.43上登录test02 结果登不上

[root@localhost ~]# ssh test02@20.0.0.41
test02@20.0.0.41's password: 
Permission denied, please try again.
test02@20.0.0.41's password: 
Permission denied, please try again.
test02@20.0.0.41's password: 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
[root@localhost ~]# 

在20.0.0.43上登录test03 能登录

[root@localhost ~]# ssh test03@20.0.0.41
The authenticity of host '20.0.0.41 (20.0.0.41)' can't be established.
ECDSA key fingerprint is SHA256:X/subAZrjeEGTOEQ8wxYrsYnE5Ug2Wbg8V0jeiRBVW0.
ECDSA key fingerprint is MD5:e2:49:48:9c:89:35:ac:73:a5:bb:52:3a:f5:f5:36:8d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '20.0.0.41' (ECDSA) to the list of known hosts.
test03@20.0.0.41's password: 
Last failed login: Mon Jul 13 10:41:23 CST 2020 from 20.0.0.43 on ssh:notty
There was 1 failed login attempt since the last successful login.
[test03@client ~]$ 

test02只能做20.0.0.42*问服务端, test03没有限制,在所有设备上都能连接服务端

三:远程配对密钥验证

开启密钥对功能

vi /etc/ssh/sshd_config

荐
                                                        远程访问及控制实验

3.1客户端

创建密钥对

ssh-keygen -t ecdsa

[liu@client root]$ ssh-keygen -t ecdsa    椭圆曲线数字签名加密
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/liu/.ssh/id_ecdsa): 
Enter passphrase (empty for no passphrase): 输入liuzhangsan  自己设置
Enter same passphrase again: 
Your identification has been saved in /home/liu/.ssh/id_ecdsa.
Your public key has been saved in /home/liu/.ssh/id_ecdsa.pub.
The key fingerprint is:
SHA256:PgVtDB1OhMPgm4uRRVbodiIXZw6JQj5BB3C4QmQz8ac liu@client
The key's randomart image is:
+---[ECDSA 256]---+
|o@B...+*o++.     |
|o+=o.+= **.      |
|..oo oo*..=      |
|o  .+o=ooo       |
|.  Eo+ooS .      |
|     o o .       |
|    . . o        |
|         .       |
|                 |
+----[SHA256]-----+

荐
                                                        远程访问及控制实验

将公钥推给主服务器的TEST3 ,并输入TEST3的密码

[liu@client .ssh]$  ssh-copy-id -i id_ecdsa.pub test03@20.0.0.41
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_ecdsa.pub"
The authenticity of host '20.0.0.41 (20.0.0.41)' can't be established.
ECDSA key fingerprint is SHA256:X/subAZrjeEGTOEQ8wxYrsYnE5Ug2Wbg8V0jeiRBVW0.
ECDSA key fingerprint is MD5:e2:49:48:9c:89:35:ac:73:a5:bb:52:3a:f5:f5:36:8d.
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
test03@20.0.0.41's password: 

Number of key(s) added: 1

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

用tefst03登录服务端

[liu@client .ssh]$ ssh test03@20.0.41
The authenticity of host '20.0.41 (20.0.0.41)' can't be established.
ECDSA key fingerprint is SHA256:X/subAZrjeEGTOEQ8wxYrsYnE5Ug2Wbg8V0jeiRBVW0.
ECDSA key fingerprint is MD5:e2:49:48:9c:89:35:ac:73:a5:bb:52:3a:f5:f5:36:8d.
Are you sure you want to continue connecting (yes/no)? yse
Please type 'yes' or 'no': yes
Warning: Permanently added '20.0.41' (ECDSA) to the list of known hosts.
Enter passphrase for key '/home/liu/.ssh/id_ecdsa': 
Last login: Mon Jul 13 10:46:18 2020 from 20.0.0.42

[test03@client ~]$ 

切换到服务端test03家目录

荐
                                                        远程访问及控制实验

3.2 开启bash代理,免去重复输入秘钥的麻烦

[liu@client .ssh]$ ssh-agent bash  启动代理bash 功能
[liu@client .ssh]$ ssh-add   添加秘钥口令
Enter passphrase for /home/liu/.ssh/id_ecdsa:    输入秘钥对秘钥 
Identity added: /home/liu/.ssh/id_ecdsa (/home/liu/.ssh/id_ecdsa)

再次远程登录----不再需要秘钥

[liu@client .ssh]$ ssh test03@20.0.0.41
Last login: Mon Jul 13 11:45:45 2020
[test03@client ~]$

3.3scp远程安全复制

通过scp命令可以利用SSH安全连接与远程主机相互复制。使用scp命令时,除了必须指定复制源、目标之外,还应指定目标主机地址、登录用户、执行后提示验证口令即可

客户端创建文件

[liu@client opt]$ touch 123.txt
[liu@client opt]$ echo “123456789” > 123.txt

3.3.1 拷贝文件到主服务器

scp 123.txt root@20.0.0.41:/home/

[liu@client opt]$ scp 123.txt root@20.0.0.41:/home/ 
root@20.0.0.41's password: 
123.txt                  100%   10     7.8KB/s   00:00    
[liu@client opt]$ 

3.3.2查看拷贝过去的文件

[root@server ~]# cd /home/
[root@server home]# ls
123.txt  johnsoon  test01  test02  test03
[root@server home]# cat 123.txt
123456789

3.4sftp安全FTP 上下载**

通过scp命令可以利用SSH安全连接与远程主机相互复制。使用scp命令时,除了必须指令复制源、目标之外,还应指定目标主机地址、登录用户、执行后提示验证口令即可

1)先远程连接到服务端

[root@client ~]# sftp root@20.0.0.41   
root@20.0.0.41's password: 
Connected to 20.0.0.41.
sftp> ls
1.txt                        aa                           
anaconda-ks.cfg              bb                           
cc                           initial-setup-ks.cfg         
下载                       公共                       
图片                       文档                       
桌面                       模板                       
视频                       音乐                       
sftp> cd /home
You must specify a path after a cd command.
sftp> ls
123.txt    abc.txt    johnsoon   test01     test02     
test03     
sftp> get abc.txt    下载abc.txt文件
Fetching /home/abc.txt to abc.txt
/home/abc.txt            100%    9     6.6KB/s   00:00    
sftp> bye   退出登录
[root@client ~]# ls
abc.txt               公共  图片  音乐
anaconda-ks.cfg       模板  文档  桌面
initial-setup-ks.cfg  视频  下载
[root@client ~]# cat abc.txt   文件下载到客户端了
aabbccdd

sftp> ls
123.txt abc.txt johnsoon test01 test02
test03
sftp> get abc.txt 下载abc.txt文件
Fetching /home/abc.txt to abc.txt
/home/abc.txt 100% 9 6.6KB/s 00:00
sftp> bye 退出登录
[root@client ~]# ls
abc.txt 公共 图片 音乐
anaconda-ks.cfg 模板 文档 桌面
initial-setup-ks.cfg 视频 下载
[root@client ~]# cat abc.txt 文件下载到客户端了
aabbccdd


get是下载,put 是上传

本文地址:https://blog.csdn.net/m0_46476544/article/details/107318450