400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

linux的远程访问及控制-创新互联

这篇文章主要为大家详细介绍了linux的远程访问及控制,文中示例代码介绍的非常详细,零基础也能参考此文章,感兴趣的小伙伴们可以参考一下。

创新互联拥有10多年的建站服务经验,在此期间,我们发现较多的客户在挑选建站服务商前都非常的犹豫。主要问题集中:在无法预知自己的网站呈现的效果是什么样的?也无法判断选择的服务商设计出来的网页效果自己是否会满意?创新互联业务涵盖了互联网平台网站建设、移动平台网站制作、网络推广、按需设计网站等服务。创新互联网站开发公司本着不拘一格的网站视觉设计和网站开发技术相结合,为企业做网站提供成熟的网站设计方案。

linux运维管理的时候,一般都是通过远程方式管理,当需要从一个工作站管理数以百计的服务器主机时,远程维护的方式将更占优势。

一、SSH远程管理

SSH是一种安全通道协议,主要用来实现字符界面的远程管理、远程复制等功能。SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登陆时输入的用户口令。
与早期的TELNET(远程登录)、RSH(Remote Shell,远程执行)、RCP(Remote File Copy,远程文件复制)等应用相比,SSH协议提供了更好的安全性。

SSH协议

1、再tast01中配置ssh服务端配置文件,添加AllowUsers条目,添加仅允许登录的客户端
[root@tast01 ~]# vim /etc/ssh/sshd_config    //进入编辑ssh服务端配置文件
#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
MaxAuthTries 6
#MaxSessions 10
AllowUsers sun@192.168.144.135 stii  //在此处添加条目,仅允许IP地址为192.168.144.135客户机登录sun用户
                     仅允许客户端登录stii用户
#PubkeyAuthentication yes

:wq                  //保存退出
[root@tast01 ~]# useradd stii     //添加stii用户
[root@tast01 ~]# passwd stii     //设置stii用户密码
更改用户 stii 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@tast01 ~]# systemctl restart sshd   //重启ssh服务
2、分别在tast02、tast03客户机使用ssh服务远程登录tast01服务器
[root@tast02 ~]# ssh sun@192.168.144.133    //在tast02客户端中登录服务器sun用户
sun@192.168.144.133's password:         //输入密码
Last failed login: Mon Sep  9 17:24:32 CST 2019 from 192.168.144.135 on ssh:notty
There were 6 failed login attempts since the last successful login.
Last login: Mon Sep  9 17:21:47 2019 from 192.168.144.133
[sun@tast01 ~]$           //成功登录
[sun@tast01 ~]$ exit         //退出用户
登出
Connection to 192.168.144.133 closed.
[root@tast02 ~]# ssh siti@192.168.144.133     //使用ssh登录服务器siti用户
siti@192.168.144.133's password:          //输入密码
Permission denied, please try again.        //拒绝登录
[root@tast02 ~]# ssh stii@192.168.144.133     //登录stii用户
stii@192.168.144.133's password:          //输入密码
[stii@tast01 ~]$                  //成功登录
[root@tast03 ~]# ssh sun@192.168.144.133      //tast03客户机使用ssh服务登录服务器sun用户
The authenticity of host '192.168.144.133 (192.168.144.133)' can't be established.
ECDSA key fingerprint is SHA256:B8IsZOFG7FbtVkIK+dMILmo0iA4OEIeVGY0GnnCbXhk.
ECDSA key fingerprint is MD5:c2:d8:09:17:de:6e:ec:07:06:1b:ac:b6:1e:bd:62:09.
Are you sure you want to continue connecting (yes/no)? yes    //询问是否建立会话,输入yes确定建立会话
Warning: Permanently added '192.168.144.133' (ECDSA) to the list of known hosts.
sun@192.168.144.133's password:           //输入密码
Permission denied, please try again.         //拒绝登录
[root@tast03 ~]# ssh siti@192.168.144.133      //tast03客户机使用ssh服务登录服务器siti用户
siti@192.168.144.133's password:           //输入密码
Permission denied, please try again.         //拒绝登录
[root@tast03 ~]# ssh stii@192.168.144.133      //tast03客户机使用ssh服务登录服务器stii用户
stii@192.168.144.133's password:           //输入密码
Last login: Mon Sep  9 21:55:49 2019 from 192.168.144.135
[stii@tast01 ~]$                   //成功登录
3、回到tast01服务器,编辑ssh服务器配置文件
[root@tast01 ~]# vim /etc/ssh/sshd_config     //编辑ssh服务器配置文件
#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
MaxAuthTries 6
#MaxSessions 10
DenyUsers sun@192.168.144.135 stii       //删除仅允许条目,添加拒绝条目

#PubkeyAuthentication yes
:wq                       //保存退出
[root@tast01 ~]# systemctl restart sshd     //重启ssh服务
4、分别在tast02、tast03客户机使用ssh服务远程登录tast01服务器
[root@tast02 ~]# ssh sun@192.168.144.133      //在tast02客户端中登录服务器sun用户
sun@192.168.144.133's password:          //输入密码
Permission denied, please try again.        //拒绝登录
[root@tast02 ~]# ssh stii@192.168.144.133     //在tast02客户端中登录服务器stii用户
stii@192.168.144.133's password:          //输入密码
Permission denied, please try again.        //拒绝登录
[root@tast02 ~]# ssh siti@192.168.144.133     //在tast02客户端中登录服务器siti用户
siti@192.168.144.133's password:          //输入密码
Last failed login: Mon Sep  9 22:02:00 CST 2019 from 192.168.144.132 on ssh:notty
There were 2 failed login attempts since the last successful login.
Last login: Mon Sep  9 21:53:53 2019 from 192.168.144.135
[siti@tast01 ~]$                  //成功登录
[root@tast03 ~]# ssh stii@192.168.144.133      //tast03客户机使用ssh服务登录服务器stii用户
stii@192.168.144.133's password:           //输入密码
Permission denied, please try again.         //拒绝登录
[root@tast03 ~]# ssh sun@192.168.144.133       //tast03客户机使用ssh服务登录服务器sun用户
sun@192.168.144.133's password:           //输入密码
Last failed login: Mon Sep  9 22:30:55 CST 2019 from 192.168.144.135 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Mon Sep  9 22:24:51 2019 from 192.168.144.133
[sun@tast01 ~]$                   //成功登录
[root@tast03 ~]# ssh siti@192.168.144.133      //tast03客户机使用ssh服务登录服务器siti用户
siti@192.168.144.133's password:           //输入密码
Last login: Mon Sep  9 22:32:16 2019 from 192.168.144.135
[siti@tast01 ~]$                   //成功登录

使用密钥对验证登录

1、首先在tast01服务器中进入编辑ssh配置文件,开启密钥验证条目
[root@tast01 ~]# vim /etc/ssh/sshd_config   //编辑ssh配置文件
#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
MaxAuthTries 6
#MaxSessions 10
DenyUsers sun@192.168.144.135 stii

PubkeyAuthentication yes            //开启密钥对验证功能

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile    .ssh/authorized_keys   //密钥存放位置

:wq                    //保存退出
2、进入客户端tast02客户机中,配置密钥
[root@tast02 ~]# useradd siaa      //在tast02客户机中创建用户
[root@tast02 ~]# passwd siaa      //设置用户目录
更改用户 siaa 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@tast02 ~]# su - siaa         //切换至用户siaa
[siaa@tast02 ~]$ ssh-keygen -t ecdsa    //制作ecdsa类型密钥
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/siaa/.ssh/id_ecdsa):   //密钥存放位置,保持不变,直接回车   
Created directory '/home/siaa/.ssh'.
Enter passphrase (empty for no passphrase):       //输入要设置的密码
Enter same passphrase again:              //再次输入密码
Your identification has been saved in /home/siaa/.ssh/id_ecdsa.
Your public key has been saved in /home/siaa/.ssh/id_ecdsa.pub.
The key fingerprint is:
SHA256:5mTvLU19q7uUUXECnEmNldB3S4gUiNZdvm1zupFUf0Y siaa@tast02
The key's randomart image is:
+---[ECDSA 256]---+
|     o +=B@+o.|
|    o o o*.+o=|
|    .    ..oE|
|        ++.|              //生成ecdsa密钥
|     S   +.+=|
|    = .  ..=+=|
|     . .o o+..|
|     ...o  + |
|      ...+=  |
+----[SHA256]-----+
[siaa@tast02 ~]$ ls -a       //查看用户家目录隐藏文件
.  ..  .bash_logout  .bash_profile  .bashrc  .cache  .config  .mozilla  .ssh
[siaa@tast02 ~]$ cd .ssh      //进入生成的.ssh目录
[siaa@tast02 .ssh]$ ls        //查看目录内容
id_ecdsa  id_ecdsa.pub        //生成的私钥与公钥文件
[siaa@tast02 .ssh]$ ssh-copy-id -i id_ecdsa.pub siti@192.168.144.133  //指定生成的公钥文件推送到服务器siti用户
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_ecdsa.pub"
The authenticity of host '192.168.144.133 (192.168.144.133)' can't be established.
ECDSA key fingerprint is SHA256:B8IsZOFG7FbtVkIK+dMILmo0iA4OEIeVGY0GnnCbXhk.
ECDSA key fingerprint is MD5:c2:d8:09:17:de:6e:ec:07:06:1b:ac:b6:1e:bd:62:09.
Are you sure you want to continue connecting (yes/no)? yes     //询问是推送,输入yes
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
siti@192.168.144.133's password:    //输入服务器siti用户密码

Number of key(s) added: 1     //成功添加文件

Now try logging into the machine, with:  "ssh 'siti@192.168.144.133'"
and check to make sure that only the key(s) you wanted were added.
[siaa@tast02 .ssh]$ ls      //查看目录信息
id_ecdsa  id_ecdsa.pub  known_hosts    //创建文件Known_hosts
[siaa@tast02 .ssh]$ vim known_hosts     //查看文件信息
192.168.144.133 ecdsa-sha2-nistp256    AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC6sBj5BEqQkEIXTdcRDCzDlQRfhaoaY7OvyWzxcNxt+n6ZjbA1PSYK2SeTW3MAhUZOry7T6gNDFL7YyfMfXOGo=     //成功将ecdsa生成的密钥推送给服务器
3、回到tast01服务器中查看siti家目录中是否有推送的文件
[root@tast01 ~]# cd /home/siti     //进入siti家目录
[root@tast01 siti]# ls -a       //查看隐藏文件
.  .bash_history  .bash_profile  .cache  .mozilla
..  .bash_logout  .bashrc     .config  .ssh
[root@tast01 siti]# cd .ssh      //进入添加的.ssh目录
[root@tast01 .ssh]# ls        //查看信息
authorized_keys
[root@tast01 .ssh]# cat authorized_keys   //查看信息内容
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBD6B4elJHibp7lYDfogSfd7krTUPyKzvLHZNk75GTm1oibrA0aMirgtwxxfUEOi+9+ZGU2V0C3+zH6vQpjvvPoo= siaa@tast02    //siaa@tast02的ecdsa加密文件
4、在tast02客户端中使用siaa用户进行验证登录服务器tast01中siti用户
[siaa@tast02 .ssh]$ whoami   //使用命令查看当前登录用户
siaa              //确定当前登录用户为siaa
[siaa@tast02 .ssh]$ ssh siti@192.168.144.133   //使用ssh服务登录服务器siti用户
Enter passphrase for key '/home/siaa/.ssh/id_ecdsa':    //输入设置的ecdsa密码
Last login: Mon Sep  9 22:37:19 2019 from 192.168.144.132
[siti@tast01 ~]$                      //成功登录服务器siti用户
5、设置客户机信任用户免验证登录服务器
[siti@tast01 ~]$ exit      //退出当前用户
登出
Connection to 192.168.144.133 closed.
[siaa@tast02 .ssh]$ ssh-agent bash  //回到tast02中siaa用户,使用命令代理bash环境
[siaa@tast02 .ssh]$ ssh-add      //使用命令添加验证密码
Enter passphrase for /home/siaa/.ssh/id_ecdsa:  //输入验证密码
Identity added: /home/siaa/.ssh/id_ecdsa (/home/siaa/.ssh/id_ecdsa)  //成功添加密码
[siaa@tast02 .ssh]$ ssh siti@192.168.144.133      //登录服务器siti用户
Last login: Mon Sep  9 23:31:28 2019 from 192.168.144.135    
[siti@tast01 ~]$               //成功登录,免密码验证

SSH客户端程序

1、进入tast01服务器,编辑SSH配置文件,打开root登录,因为在Linux系统中有些路径没有root权限,无法实现复制功能
[root@tast01 ~]# vim /etc/ssh/sshd_config
...//省略部分内容...
# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes    //开启登录root用户权限
#StrictModes yes
MaxAuthTries 6
#MaxSessions 10

PubkeyAuthentication yes

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
:wq             //保存退出   
[root@tast01 ~]# systemctl restart sshd  //重启SSH服务
2、在tast02中验证root用户登录权限是否成功开启。
[root@tast02 ~]# ssh root@192.168.144.133     //使用ssh服务登录服务器root用户
root@192.168.144.133's password:         //输入用户密码
Last login: Wed Sep 11 22:56:28 2019 from 192.168.144.135
[root@tast01 ~]#                 //成功登录
3、在tast02中退出服务器root用户登录,在opt目录下创建文件,使用scp命令推送给tast01用户
[root@tast01 ~]# exit       //退出
登出
Connection to 192.168.144.133 closed.
[root@tast02 ~]# cd /opt/        //进入opt目录
[root@tast02 opt]# ls          //查看
rh
[root@tast02 opt]# echo "this is ssh-client" > ssh_client.txt   //创建.txt文件
[root@tast02 opt]# mkdir -p tast/si11               //递归创建tast目录并在tast目录下创建si11目录
[root@tast02 opt]# ls                       //查看
rh  ssh_client.txt  tast                      //成功创建文件与目录
[root@tast02 opt]# scp ssh_client.txt root@192.168.144.133:/home/  //将创建的.txt文件推送到服务器root用户home目录下
root@192.168.144.133's password:      //输入密码
ssh_client.txt                         100%  19   6.0KB/s  00:00   //成功推送
4、回到tast01服务器中,查看home目录下是否有推送过去的文件。
[root@tast01 ~]# ls /home/      //查看home目录下文件
ssh_client.txt  sun         //成功添加文件
[root@tast01 ~]# cat /home/ssh_client.txt   //查看文件内容
this is ssh-client              //显示文件内容
5、在tast02中把刚创建的文件夹推送给tast01服务器,并在tast01服务器中查看是否成功推送
[root@tast02 opt]# scp -r tast/ root@192.168.144.133:/home/   //推送文件夹
root@192.168.144.133's password:                 //输入密码
[root@tast02 opt]#                       //推送成功
[root@tast01 ~]# ls /home/              //查看home目录
ssh_client.txt  sun  tast              //显示推送的文件夹
[root@tast01 ~]# ls /home/tast/           //查看文件夹内容
si11                         //显示创建的si11目录

使用sftp命令实现远程上传和下载

1、在tast02中删除创建的文件与文件夹
[root@tast02 opt]# ls           //查看信息
rh  ssh_client.txt  tast          //显示内容
[root@tast02 opt]# rm -rf ssh_client.txt  //删除txt文件
[root@tast02 opt]# rm -rf tast/      //删除文件夹
[root@tast02 opt]# ls           //查看
rh                     //成功删除
2、使用sftp命令从tast01服务器中下载文件
[root@tast02 opt]# sftp root@192.168.144.133    //使用sftp命令登录tast01服务器root用户
root@192.168.144.133's password:          //输入密码
Connected to 192.168.144.133.            
sftp> ls                    //成功登录并查看目录信息
anaconda-ks.cfg     initial-setup-ks.cfg   下载          公共          
图片          文档          桌面          模板     //此时在root用户家目录下       
视频          音乐          
sftp> cd /home/            //进入home目录
sftp> ls               //查看
ssh_client.txt  sun       tast    //显示内容     
sftp> get ssh_client.txt           //使用get命令下载txt文件
Fetching /home/ssh_client.txt to ssh_client.txt    
/home/ssh_client.txt                      100%  19   19.3KB/s  00:00   
sftp> bye             //退出
[root@tast02 opt]# ls       //查看目录下是否有内容
rh  ssh_client.txt         //成功下载
3、将下载的文件更改名字,在使用sftp命令将文件上传至tast01服务器home目录,并回到tast01服务器中查看信息
[root@tast02 opt]# mv ssh_client.txt ssh_server.txt   //更改文件名称
[root@tast02 opt]# ls                  //查看
rh  ssh_server.txt                   //已更改
[root@tast02 opt]# sftp root@192.168.144.133       //使用sftp命令登录tast01root用户
root@192.168.144.133's password:            //输入密码
Connected to 192.168.144.133.
sftp> cd /home/                      //进入home目录
sftp> ls                        //查看内容
ssh_client.txt  sun       tast       
sftp> put ssh_server.txt                //将文件上传至tast01服务器home目录中
Uploading ssh_server.txt to /home/ssh_server.txt
ssh_server.txt                         100%  19   15.6KB/s  00:00   
sftp> bye         //退出
[root@tast02 opt]# 
[root@tast01 ~]# ls /home/          //查看home目录内容
ssh_client.txt  ssh_server.txt  sun  tast   //成功上传文件

TCP wrappers访问控制

TCP wrappers概述

保护原理

TCP wrappers将其他的TCP服务程序“包裹”起来,增加了一个安全的检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。TCP wrappers还可以记录所有企图访问被保护服务的行为,为管理员提供丰富的安全分析资料。TCP wrappers的访问是基于TCP协议的应用服务。

保护机制的实现方式

方式1:通过tcpd主程序对其他服务程序进行包装
方式2:有其他服务程序调用libwrap.os.*连接库

访问控制策略的配置文件

/etc/hosts.allow
/etc/hosts.deny
TCP Wrappers策略应用

设置访问控制策略

仅允许从以下地址访问sshd服务
主机61.63.65.67
网段192.168.2.0/24
禁止其他所有地址访问受保护的服务

linux的远程访问及控制

关于linux的远程访问及控制就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果喜欢这篇文章,不如把它分享出去让更多的人看到。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页标题:linux的远程访问及控制-创新互联
分享链接:http://mzwzsj.com/article/ehsis.html

其他资讯

让你的专属顾问为你服务