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

ssh远程控制

程序员文章站 2022-07-15 14:11:12
...

OpenSSH服务器

SSH协议
是一种安全通道协议
对通信数据进行了加密处理,用于远程管理

OpenSSH
服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件: /etc/ssh/sshd_config

服务监听选项
端口号、协议版本、监听地址IP地址
禁用反向解析


[aaa@qq.com ~]# vi /etc/ssh/sshd_config 
.......
Port 22
ListenAddress 0.0.0.0
UseDNS![在这里插入图片描述](https://img-blog.csdnimg.cn/2020110115404989.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MDM0NTA1OQ==,size_16,color_FFFFFF,t_70#pic_center)
 no

用户登录控制
1、禁用root用户、空密码用户
2、限制登录验证时间、重试次数
3、AllowUsers、DenyUsers

ssh远程控制

登录验证方式
密码验证:核对用户名、密码是否匹配
**对验证:核对客户的**、服务端公钥是否匹配

生成公钥


[aaa@qq.com ~]# ssh-****** -t rsa

ssh远程控制
ssh远程控制

使用SSH客户端程序

ssh命令—远程安全登录
ssh aaa@qq.com


[aaa@qq.com ~]# ssh aaa@qq.com192.168.188.10

scp命令—远程安全复制
格式1:scp aaa@qq.com:file1 file2
格式2:scp file1 aaa@qq.com:file2

ssh远程控制
创建个a.txt
ssh远程控制
复制a.txt文件给cent-1下面的/opt/里面
ssh远程控制
查看cent1里面/opt/里面有没有a.txt
ssh远程控制

sftp命令—安全FTP上下载
sftp aaa@qq.comhost

下载
1、安全下载 两种方法第一种scp


[aaa@qq.com ~]#scp aaa@qq.com192.168.188.10:/opt/1 /root/192.168.188.10 root账户下面opt目录里面的1文件  下载到本地的root目录下

2、第二种本地2文件上传到192.168.188.20的root目录下

[aaa@qq.com ~]#scp /opt/2 aaa@qq.com192.168.188.20:/root/

3、sftp登录的是192.168.188.10的家目录


[aaa@qq.com ~]#sftp aaa@qq.com192.168.188.10
aaa@qq.com192.168.188.10's password: 
Connected to 192.168.188.10.
sftp> ls
anaconda-ks.cfg         initial-setup-ks.cfg    下载                  
公共                  图片                  文档                  
桌面                  模板                  视频                  
音乐                  
sftp> 

构建**对验证的SSH体系

整体实现过程
第一步:本地创建**对
私钥文件:id_rsa
公钥文件:id _rsa.pub

第二步:上传公钥文件 id_rsa_pub

第三步:导入公钥信息到服务端
公钥库文件:~/.ssh/authorized_keys

第四步:使用**对验证方式

在客户机中创建**对
ssh-******命令
可用的加密算法:RSA、ECDSA或DSA
ssh-****** -t ecdsa

将公钥文件上传至服务器
任何方式均可(FTP、Email、SCP、HTTP…)
scp ~/.ssh/id_ecdsa.pub aaa@qq.com:/tmp

在服务器中导入公钥文本
1、将公钥文本添加至目标用户的公钥库
2、默认公钥库位置:~/.ssh/authorized_keys

客户端使用**对验证登录
验证用户:服务端的用户lisi
验证密码:客户端的用户zhangsan的私钥短语

第一种

192.168.188.10


[aaa@qq.com ~]#useradd zhangsan------------创建张三
[aaa@qq.com ~]#passwd zhangsan--------创建zhangsan密码
更改用户 zhangsan 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[aaa@qq.com ~]#su zhangsan---------接换到zhangsan账户上
[aaa@qq.com root]$ ssh-****** -t rsa------创建**
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zhangsan/.ssh/id_rsa): 
Created directory '/home/zhangsan/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/zhangsan/.ssh/id_rsa.
Your public key has been saved in /home/zhangsan/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Cjf5PIInVK7ivVgD1oNA1EY89nlmmcU8k+4e0emfXUU aaa@qq.com
The key's randomart image is:
+---[RSA 2048]----+
|.o+.    o .      |
|.  *     B      E|
|. o o o = + .  . |
| . o = B o o    .|
|  + = O S o     .|
| . o * = o .    .|
|  . * + = . . o .|
| . = + . o   o . |
|  o o.           |
+----[SHA256]-----+
[aaa@qq.com ~]#gpasswd -a zhangsan wheel---------把张三加入wheel组里
正在将用户“zhangsan”加入到“wheel”组中
[aaa@qq.com root]$ cd /home/zhangsan----------切换到zhangsan
[aaa@qq.com ~]$ ls -lah
总用量 16K
drwx------. 6 zhangsan zhangsan 140 111 14:24 .
drwxr-xr-x. 5 root     root      44 111 14:22 ..
-rw-------. 1 zhangsan zhangsan  32 111 14:24 .bash_history
-rw-r--r--. 1 zhangsan zhangsan  18 83 2017 .bash_logout
-rw-r--r--. 1 zhangsan zhangsan 193 83 2017 .bash_profile
-rw-r--r--. 1 zhangsan zhangsan 231 83 2017 .bashrc
drwxrwxr-x. 3 zhangsan zhangsan  18 111 14:23 .cache
drwxrwxr-x. 3 zhangsan zhangsan  18 111 14:23 .config
drwxr-xr-x. 4 zhangsan zhangsan  39 102 20:45 .mozilla
drwx------. 2 zhangsan zhangsan  38 111 14:24 .ssh
[aaa@qq.com ~]$ 

[aaa@qq.com .ssh]$ scp id_rsa.pub aaa@qq.com192.168.188.20:/tmp/-----把公钥拷贝到192.168.188.20的root账户下/tmp目录里
The authenticity of host '192.168.188.20 (192.168.188.20)' can't be established.
ECDSA key fingerprint is SHA256:HARj61TIf2yNOHao4IJx0sMpZn3k3JPxVso/0Dk56R0.
ECDSA key fingerprint is MD5:93:e3:e6:01:b6:77:1d:3a:3c:d5:19:3f:e2:bd:3c:be.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.188.20' (ECDSA) to the list of known hosts.
aaa@qq.com192.168.188.20's password: 
Permission denied, please try again.
aaa@qq.com192.168.188.20's password: 
id_rsa.pub                            100%  398   100.8KB/s   00:00    
[aaa@qq.com .ssh]$ 

192.168.188.20


[aaa@qq.com tmp]#useradd lisi-------创建lisi
useradd:用户“lisi”已存在
[aaa@qq.com tmp]#mkdir /home/lisi/.ssh------创建.ssh目录
[aaa@qq.com tmp]#cp id_rsa.pub /home/lisi/.ssh/-------把公钥复制到.ssh目录里
[aaa@qq.com tmp]#cat id_rsa.pub >> /home/lisi/.ssh/authorized_keys------生成加密
[aaa@qq.com tmp]#cat /home/lisi/.ssh/authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCiVbiAiDg9WbdBvOzcBVNWeMOsZfUbC7/OvVMAuS8g1/JLFrx1A/ucPSBIFz2it5OAo7wIpjCEwUul8nw8Mgnjpt8Weq6SVMfM8Uv/cartrfSuMxVhCfxZENLNy80bdujQxvmGTqHLLHxdahOSZAR3aOD7VHOnqcRdR+Dhukuw1WA6+YXog1Q0a3kgTZlhjKd1UjaENeJ03Wqun7KWzpbVsynbqlbbyWsIE4C0peSPMIVJQ1SFx+su/YqytFUrZOzNBR9DObj+qIPHXHvxtLJaPYq8dWnjtZgU+nYhpmJ8Je7foz6gE4iSS4mden1v4XYKh4YHrHNznhmOvn7gam4t aaa@qq.com
[aaa@qq.com tmp]#

第2步和第3步可以采用另外一种方法
ssh-copy-id -i 公钥文件 aaa@qq.com
验证密码后,会将公钥自动添加到目标主机user宿主目录下的.ssh/authorized_keys文件结尾
ssh-copy-id ~/.ssh/id_rsa.pub aaa@qq.com

第二种(把192.168.188.20还原192.168.188.10 不动)

192.168.188.10


[aaa@qq.com ~]#cd /home/zhangsan/
[aaa@qq.com zhangsan]#su zhangsan------到zhangsan的账户下
[aaa@qq.com ~]$ cd /home/zhangsan/.ssh/
[aaa@qq.com .ssh]$ ssh-copy-id -i /home/zhangsan/.ssh/id_rsa.pub aaa@qq.com192.168.188.20-----将公钥文件添加到192.168.188.20 的lisi下

192.168.188.20


[aaa@qq.com ~]# useradd lisi----创建lisi
[aaa@qq.com ~]# passwd lisi---给lisi配密码
更改用户 lisi 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[aaa@qq.com ~]# 

TCP Wrappers概述

保护原理
客户机的网络访问请求,经过TCP Wrappers机制,对访问请求进行过滤控制,然后调用相应的网络程序

保护机制的实现方式
方式1:通过tcpd程序对其他服务程序进行包装
方式2:由其他服务程序调用libwrap.so.*链接库
访问控制策略的配置文件
/etc/hosts.allow(白名单)
/etc/host.deny(黑名单)

设置访问控制策略
策略格式:服务程序列表:客户端地址列表
服务程序列表
多个服务以逗号分隔,ALL表示所有服务
客户端地址列表
多个地址以逗号分隔,ALL表示所有地址
允许使用通配符?和*
网段地址,如192.168.4.或者192.168.4.0/255.255.255.0
区域地址,如.benet.com

策略的应用顺序
1、检查hosts.allow,找到匹配则允许访问
2、再检查hosts.deny,找到则拒绝访问
3、若两个文件中均无匹配策略,则默认允许访问

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

相关标签: linux 服务 linux