> 文章列表 > 【远程访问及控制】

【远程访问及控制】

【远程访问及控制】

目录

  • 一、OpenSSH服务器
    • 1.1、SSH远程管理
    • 1.2、ssh服务器的端口
    • 1.3、修改端口号
    • 1.4、设置用户登录
  • 二、实验
    • 2.1、设置白名单
    • 2.2、设置黑名单
  • 三、sshd 服务支持两种验证方式:
    • 3.1、密码验证
    • 3.2、密钥对验证
      • 公钥和私钥的关系:
  • 四、使用SSH客户端程序
    • 4.1、ssh 远程登录
    • 4.2、scp 远程复制
      • 1、下行复制
      • 2、上行复制
      • 3、使用双撇号和pwd命令来快速获取目录进行复制
    • 4.3、sftp安全 的FTP文件传输
  • 五、配置密钥对验证
    • 5.1、在客户端创建密钥对
    • 5.2、实验zhangsan用户用密钥对登录
    • 5.4、另一种快速实现公钥文件的复制
  • 六、ssh密钥对面交互登录
    • 6.1、使用没有密码的密钥对
    • 6.2、创建ssh会话代理(只能在当前会话中有效)

一、OpenSSH服务器

1.1、SSH远程管理

SSH:
是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。

SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性.
字号4

                         网络
SSH客户端 <----------------------------------> SSH服务端数据传输是加密的,可以防止信息泄漏数据传输是压缩的,可以提高传输速度

SSH客户端: Putty、Xshel1、 CRT
SSH服条端: OpenSSH

OpenSSH 是实现 SSH 协议的开源软件项目,适用于各种 UNIX、Linux 操作系统。Centos 7系统默认已安装openssh相关软件包,并已将 sshd 服务添加为开机自启动。

rpm -q openssh
查看这个软件有没有安装

【远程访问及控制】

systemctl status sshd
可以查看开机有没有自动启动

【远程访问及控制】

systemctl is-enabled sshd
简介查看有没有开机自动启动,出现enable就是开机自启了

【远程访问及控制】如果没有出现enable就
执行“svstemctl start sshd”命令即可启动 sshd 服务

1.2、ssh服务器的端口

sshd 服务默认使用的是TCP的 22端口
sshd  服务的默认配置文件是/etc/ssh/sshd confia

【远程访问及控制】

vim sshd_config
进入服务端的配置文件

【远程访问及控制】

禁止无密码用户登录
【远程访问及控制】禁止用户反向解析,提高服务器的响应速度
【远程访问及控制】
【远程访问及控制】

1.3、修改端口号

【远程访问及控制】

netstat -natp | grep sshd 
来查看当前端口号,发现已经改为2345端口号了,但是源端口号没有终端

【远程访问及控制】
关闭xshell就发现连接不起来了

【远程访问及控制】
点击主机的属性,将端口号设置为刚刚修改的2345端口号

【远程访问及控制】

netstat -natp | grep sshd

查看到这个端口号已经设置为2345端口

【远程访问及控制】

ssh root@192.168.102.10 -p 2345
root 是指定用户
@192.168.102.10 是指定对方主机的IP地址
-p 是指定对应主机的端口号

【远程访问及控制】

也可以在源主机上查看到有一个192.168.102.20的主机连接到这
【远程访问及控制】

vim /etc/ssh/sshd_config

【远程访问及控制】

systemctl restart sshd
设置完后重启网卡
netstat -natp | grep sshd
就可以看到已经设置本地的地址了,192.168.102.102345

【远程访问及控制】

vim /etc/ssh/sshd_config

【远程访问及控制】设置完后root用户就不能打开了
【远程访问及控制】
则除了root用户其他用户能登录
【远程访问及控制】

ssh 192.168.102.10 -p 2345
没有输入用户,按下enter后就会自动补全当前用户

【远程访问及控制】

设置把空密码用户不允许登录
【远程访问及控制】
设置一个空密码用户
【远程访问及控制】设置完不允许空密码登录后,这个空密码的用户就登录不了了
【远程访问及控制】

设置空密码用户允许登录
【远程访问及控制】

设置完成后,可以看见空密码用户可以登录
【远程访问及控制】

1.4、设置用户登录

只允许zhangsan、lisi、wangwu用户登录,且其中wangwu用户仅能够从IP地址为192.168.102.10的主机远程登录
AllowUsers zhangsan lisi wangwu@102.168.102.10
多个用户以空格分隔

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

DenyUsers 用户名

二、实验

先设置几个实验用户,配置密码
【远程访问及控制】

2.1、设置白名单

在源主机里设置了让wangwu用户只能登录在192.168.102.10配置的主机
【远程访问及控制】
所以wangwu用户就登录不了其他的主机
【远程访问及控制】

则其他用户就可以随意登录不同的主机
【远程访问及控制】

【远程访问及控制】在192.168.102.10的主机里设置wangwu这个用户就可以登录
【远程访问及控制】
在任意主机上登录wolong用户,不能登录
因为在白名单里没有设置wolong

【远程访问及控制】

root用户也不在白名单里面所以也登录不了【远程访问及控制】
在白名单里在设置一个root用户
【远程访问及控制】
白名单设置完后,root用户就可以登录了
【远程访问及控制】

2.2、设置黑名单

DenyUsers  目标用户

【远程访问及控制】
设置完后在黑名单里的用户就登录不了了

【远程访问及控制】

为什么wangwu能登录
因为在黑名单里设置的是在192.168.102.10的主机里不能登录,其他的主机可以登录

【远程访问及控制】

三、sshd 服务支持两种验证方式:

3.1、密码验证

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

查看secure文件,查看主机有没有被攻击
看见被攻击了,就把那些登录的IP地址给放进黑名单里

【远程访问及控制】

3.2、密钥对验证

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

公钥和私钥的关系:

·公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密。
·不能根据一个密钥来推算出另一个密钥。
·公钥对外公开,私钥只有私钥的持有人才知道。

当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。可根据实际情况设置验证方式


vim /etc/ssh/sshd config
PasswordAuthentication yes
#启用密码验证PubkeyAuthentication yes
#启用密钥对验证AuthorizedKeysFile .ssh/authorized keys
#指定公钥库文件

在里面找到公钥文件
【远程访问及控制】

四、使用SSH客户端程序

4.1、ssh 远程登录

ssh [选项]  用户@主机的IP地址
ssh 使用小p来指定端口号

当用户第一次登录SSH服务器时,必须接受服务器发来的ECDSA密钥(根据提示输入"yes")后才能继续验证。

【远程访问及控制】

在.ssh目录里的known_hosts文件存放验证信息,如果与这个文件里的信息不一致就禁止访问,一致就同意访问
【远程访问及控制】ssh命令可以使一台主机快速执行一个命令,并且执行完后就退出
【远程访问及控制】
ssh命令也可以实现远程主机删除本机的文件

【远程访问及控制】
【远程访问及控制】

4.2、scp 远程复制

1、下行复制

将远程主机中的文件复制到本机

scp root@192.168.102.20:/opt/john-1.8.0.tar.gz ./192.168.102.20   表示对方主机的IP地址:/opt/表示对方的目录,后面跟上要复制的目录文件绝对路径在最后面加上 . / 表示将对方主机的opt目录里的文件复制到当前主机目录里

【远程访问及控制】

2、上行复制

将本机的目录复制到远程主机上

scp -P 2345 -r dznb/ 192.168.102.10:/root/- 大P 指定对方的端口号- r 将本机的目录复制到远程主机dznb/  本机的目录192.168.102.10   远程主机的IP地址:/root/   指定复制到远程主机的 root 目录里,绝对路径

【远程访问及控制】【远程访问及控制】
如果有同名目录的话,复制的内容会直接覆盖

【远程访问及控制】【远程访问及控制】

3、使用双撇号和pwd命令来快速获取目录进行复制

【远程访问及控制】
直接按下波浪号键,不加shift键

【远程访问及控制】【远程访问及控制】

4.3、sftp安全 的FTP文件传输

由于使用了加密/解密技术,所以传输效率比普通的FTP要低,但安全性更高。操作语法sftp与ftp几乎一样

sftp -P 2345 root@192.168.102.10
在sftp命令里,要使用大P来指定对方主机的端口号
root 对方的root用户

【远程访问及控制】也可以使用put命令来使远程主机上传文件到本机
【远程访问及控制】【远程访问及控制】

sftp > get 文件名     下载文件到ftp目录
sftp > put 文件名     上传文件到ftp目录
sftp > quit          退出

五、配置密钥对验证

5.1、在客户端创建密钥对

通过ssh-keygen工具为当前用户建密钥对文件。可用的加密算法为RSA、ECDSA或DSA等(ssh-keygen命令的"-t"选项用于指定算法类型)

【远程访问及控制】
将公钥文件复制到192.168.102.10主机上
【远程访问及控制】
在目标主机上查看到公钥文件,使用cat查看公钥文件的密钥信息
【远程访问及控制】

5.2、实验zhangsan用户用密钥对登录

你想要哪个客户端使用哪个用户登录,就把公钥文件导入到该文件的家目录里
现在使用zhangsan用户密钥登录

【远程访问及控制】创建的文件名必须是authorized_keys
【远程访问及控制】

在当前用户的家目录里设置一个.shh的目录并且修改权限为7.0.0
【远程访问及控制】

cat id_rsa.pub >> /home/zhangsan/.ssh/authorized_keys重定向输出到自己的家目录里的zhangsan用户到.ssh目录里创建一个authorized_keys文件

【远程访问及控制】
把文件的使用权限设定为6.0.0的使用权限
【远程访问及控制】

5.4、另一种快速实现公钥文件的复制

ssh-copy-id -p 2345 -i id_rsa.pub zhangsan@192.168.102.10
-i id_rsa.pub 指定公钥文件
-p 指定端口号

【远程访问及控制】
自动设置目录和文件的权限
【远程访问及控制】
接下来就可以使用密钥对的密码登录了
【远程访问及控制】

六、ssh密钥对面交互登录

6.1、使用没有密码的密钥对

ssh-keygen -t rsa/ecdsa    一路回车,不设置密码ssh-copy-id -i 公钥文件    目标主机用户@目标主机IP/主机名

6.2、创建ssh会话代理(只能在当前会话中有效)

ssh-agent bash  在当前登录环境中实现一个代理
ssh-add         输入这个密钥对的密码

输入以上命令后就可以实现免密码登录,只能在当前会话中有效退出当前会话就会消失这个代理
【远程访问及控制】