‘Linux’远程访问及控制

  • Post author:
  • Post category:linux




一.SSH服务



1.什么是SSH?
  • SSH (Secure Shel1) 是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。
  • SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性。


2.OpenSSH服务器
SSH (Secure Shell) 协议 是一种安全通道协议 对通信数据进行了加密处理,用于远程管理

在这里插入图片描述

SSH

客户端

: putty、xshell、CRT、MobaXterm、Finalshell

SSH

服务器

: Openssh



3.OpenSSH服务器配置文件

服务名称:

sshd


服务端主程序:

/usr/sbin/sshd·


服务端配置文件:

/etc/ssh/sshd config

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

执行“systemctl start sshd”命令即可启动sshd服务。默认端口使用的22端口。

ssh_confiog 和 sshd_config 都是ssh服务器的配置文件

二者区别在于前者是针对客户端的配置文件,后者是针对服务端的配置文件。

ssh服务端主要包括两个服务功能,ssh远程连接和sftp服务



二.ssh远程登录方式

ssh 【选项】 nanjing192.168.90.20

当用户第一次登求SSH服务器时,必须接受服务器发来的

ECDSA密钥

(根据提示输入”yes”)后才能继续验证。接收的信息将保存到~/.ssh/known_hosts 文件中。密码验证成功以后,即可登录目标服务器的命今行环境中了。


-P: 指定非默认的端口号,缺省时默认使用 22端口

ssh -p 12345 nanjing@192.168.80.10    //指定端口远程控制
示例:远程登录其他主机

(1):首先验证是否安装

ssh

[root@whw ~]# rpm -q openssh
openssh-7.4p1-21.el7.x86_64

(2)验证是否开启sshd服务:

在这里插入图片描述

(3)查看ssd服务配置文件:

在这里插入图片描述

(4)sshd_config配置文件的常用选项设置:


  • vim /etc/ssh/sshd_config

    #进入配置sshd配置文件
常用选项配置
Port 22 监听端口为 22
ListenAddress 0.0.0.0 监听地址为任意网段,也可以指定openssH服务器的具体IP
LoginGraceTime 2m 登录验证时间为 2 分钟
PermitRootLogin no 禁止root 用户登求
MaxAuthTries 6 最大重试次数为 6
PermitEmptyPasswords no 禁止空密码用户登录
UseDNS no 禁用 DNs 反向解析,以提高服务器的响应速度

(6).使用centos远程连接:

在这里插入图片描述



1.更改端口号:
vim sshd_config     
Port 2222         //端口号改为2222
systemctl stop firewalld
setenforce 0      //更改端口号一定要关闭防火墙
systemctl restart sshd   //重启配置文件
netstat -natp | grep sshd   //查看监听端口是否更改

在这里插入图片描述
在这里插入图片描述



2.更改监听地址
vim sshd_config 
ListenAddress 192.168.174.71     //更改为网卡地址
netstat -natp | grep sshd   //查看监听地址是否更改

在这里插入图片描述

在这里插入图片描述



3.限制root用户登录
vim sshd_config 
PermitRootLogin no      //限制root登录
ssh root@网卡地址 (端口号不是默认需要加-p)  //尝试登录

在这里插入图片描述

在这里插入图片描述



4.禁止空密码用户登录:
[root@whw ssh]# vim sshd_config
PermitEmptyPasswords  no    //禁止空密码用户登录
[root@whw ssh]# systemctl restart sshd
[root@whw ssh]# useradd wang
[root@whw ssh]# echo 123456 | passwd --stdin wang
更改用户 wang 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@whw ssh]# passwd -d wang
清除用户的密码 wang。
passwd: 操作成功

尝试wang用户空密码登录无法连接

在这里插入图片描述

尝试wang用户空密码登录成功连接

[root@whw ssh]# vim sshd_config
PermitEmptyPasswords  yes    //允许空密码用户登录
[root@whw ssh]# systemctl restart sshd

在这里插入图片描述



5.设置白名单
[root@whw pam.d]# vim /etc/ssh/sshd_config
AllowUsers zhangsan lisi  wangwu@192.168.174.71     //设置白名单
[root@whw pam.d]# systemctl restart sshd
[root@whw pam.d]# useradd zhangsan
[root@whw pam.d]# echo 123456 | passwd --stdin zhangsan
更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@whw pam.d]# useradd lisi
[root@whw pam.d]# echo 123456 | passwd --stdin lisi
更改用户 lisi 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@whw pam.d]# useradd wangwu
[root@whw pam.d]# echo 123456 | passwd --stdin wangwu
更改用户 wangwu 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@whw pam.d]# vim /etc/ssh/sshd_config

尝试用当前地址主机远程连接

在这里插入图片描述

尝试用不同网卡地址主机远程连接

在这里插入图片描述

因为在ssh配置中设置了wangwu用户只局限在192.168.174.71地址登录;所以别的用户无法登录
在这里插入图片描述



6.设置黑名单
[root@whw pam.d]# vim /etc/ssh/sshd_config
DenyUsers lisi wangwu@192.168.174.71
[root@whw pam.d]# systemctl restart sshd

尝试远程连接登录

在这里插入图片描述



三.sshd服务验证方式

ssd服务分为

密码验证



密钥验证

  • 密码验证

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

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

公钥和私钥的关系:

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


配置密钥对验证:

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

    在这里插入图片描述
  • 将公钥文件复制到192.168.102.10主机上
[root@whw ~/.ssh]# scp -P 2345 id rsa.pub root@192.168.136.71:/opt
root@192.168.136.71's password:
id_rsa,pub                         100%  392  717.9KB/s  00:00             
[root@whw ~/.ssh]
  • 在目标主机上查看到公钥文件,使用cat查看公钥文件的密钥信息

    在这里插入图片描述



四.ssh密钥对面交互登录

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

  • 创建ssh会话代理(只能在当前会话中有效)
ssh-agent bash  在当前登录环境中实现一个代理
ssh-add         输入这个密钥对的密码

输入以上命令后就可以实现免密码登录,

只能在当前会话中有效

退出当前会话就会消失这个代理

[rootedz888 ~/.ssh]# ssh-agent bash
[rootedz888 ~/.ssh]# ssh-add
Enter passphrase for /root/.ssh/id rsa:Identity added: /root/.ssh/id rsa (/root/.ssh/id rsa)
[rootedz888 ~/.ssh]# ssh zhangsan@192.168.102.10 -p 2345
Last login: Sat Apr 22 18:38:42 2023 from 192.168.102.20



版权声明:本文为Wanghwei17原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。