linux SSH服务

SSH是一种安全协议,用于加密远程登录和其他网络服务的数据传输,防止信息泄露。它包括密码和密钥对验证,其中密钥对验证能提供无密码登录。SSH配置涉及端口、配置文件解析,如`/etc/ssh/sshd_config`和`/etc/ssh/ssh_config`。此外,SSH支持scp和sftp命令进行安全文件传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

概念

概括

1. 特点 :

2. 身份验证机制

3. 验证过程

4. 加密机制

1. 特点

2. 身份验证机制

3.验证过程

4. 加密机制

基本参数

1. 配置文件

2. 配置文件解析

2. 配置文件解析

操作流程


  • 概念


ssh服务介绍说明
secure shell protocol简称SSH,是由IETF网络工作小组(network working group) 制定,在进行数据传输之前,SSH先对联级数据包通过加密技术进行加密处理,加密后在进行数据传输,确保了传递的数据安全.
SSH是专门为远程登录会话和其他网络服务(例如:rsync,ansible)提供的安全性协议,利用SSH协议可以有效的防止远程管理过程中的信息泄露问题,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程连接服务器软件(例如:Telnet/23端口/非加密的)等

  • 概括


1. 特点 :

2. 身份验证机制

3. 验证过程

4. 加密机制

1. 特点

ssh是工作在传输和应用的协议

可实现远程连接,远程控制

2. 身份验证机制

密码验证:顾名思义在登录或者进行远程连接 远程控制时需要对方的用户密码

密钥对验证:密钥分为 公钥 私钥 当建立好密钥之后则不需要密码

3.验证过程

客户端发送命令请求 确认是否保存指纹信息 yes确定保持

随后输入对方主机密码

打开子shell建立会话

如果退出输入命令exit即可

4. 加密机制

单向加密:

单向加密又称为不可逆加密算法,在加密过程中不使用密钥,明文由系统加密处理成密文,密文无法解密  一般适合于验证,在验证过程中,重新输入明文,并经过同样的加密算法处理,得到相同的密文并被系统重新认证

对称加密:

对称性加密也称为密钥加密。所谓对称,就是采用这种加密方法的双方,使用方式用同样的密钥进行加密和解密

非对称加密:

非对称加密(asymmetric cryptography),也称为公开密钥加密(Public-key cryptography),是密码学的一种算法,它需要两 个密钥,一个是公开密钥,另一个是私有密钥。顾名思义,公钥可以任意对外发布;而私钥必须由用户自行严格秘密保管,绝不 透过任何途径向任何人提供,也不会透露给要通信的另一方,即使他被信任

  • 基本参数


1. 配置文件

2. 配置文件解析

服务名:sshd

端口号:TCP/22

1. 配置文件

(1)服务器端

(2)客户端

没有绝对的客户端和服务器,主要是看谁是发起端,谁是接收端

服务器端
ssh主程序sshd的配置文件/etc/ssh/sshd_config
服务器的公钥的私钥文件/etc/ssh/ssh_host_*
密钥库文件~/.ssh/authorized_keys

客户端
客户端的全局配置文件/etc/ssh/ssh.config
客户端存储主机指纹的文件~/.ssh/known_hosts
客户端生成的私钥~/.ssh.id_rsa
客户端生成的公钥~/.ssh.id_rsa.pub

2. 配置文件解析

配置文件解析:

/etc/ssh/sshd_config

/etc/ssh/ssh_config

/etc/ssh/sshd_config
监听端口port
监听地址,0.0.0.0表示监听所有地址Listenaddress    
是否启用密钥对验证PubkeyAuthentication
是否启用密码验证PasswordAuthentication
是否启用空密码,密码验证时,最好关闭PermitEmptyPasswords

/etc/ssh/ssh_config
连接超时时间ConnectTimeout

  • 操作流程

ssh:远程连接的客户端工具

格式:格式:ssh  【选项】【用户】@【ip地址】

选项:-p 指定端口

           -b 指定网卡

(实验案例:)

1. 指定用户登录 : 客户端以cjf01的用户身份登录到服务器
2. 不登录执行命令 :客户端使用jx02的用户身份不登录到服务器,执行查看服务器网卡配置文件的内容

【以上案例需要先在虚拟机里搭建好中继环境再进行】

1. 指定用户登录 : 客户端以cjf01的用户身份登录到服务器

首先在服务器创建cjf01用户并设置密码

[root@localhost ~]# useradd cjf01
[root@localhost ~]# passwd cjf01
更改用户 cjf01 的密码 。
新的 密码:

输入ifcomfig查看服务机IP地址

[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.50.254  netmask 255.255.255.0  broadcast 192.168.50.255
        inet6 fe80::4c10:2159:6a4:edce  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:7a:10:fe  txqueuelen 1000  (Ethernet)
        RX packets 1007  bytes 94760 (92.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 659  bytes 83864 (81.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

然后返回客户机 输入命令ssh cjf01@192.168.50.254 (yes/no)输入yes 到最后输入密码即可完成登录 返回exit登出即可

[root@localhost ~]# ssh cjf01@192.168.50.254
The authenticity of host '192.168.50.254 (192.168.50.254)' can't be established.
ECDSA key fingerprint is SHA256:j+z8eqXkR7Z+qDCk5mMNIygkI9DSjJ7KFIvwIxIdXbM.
ECDSA key fingerprint is MD5:dc:e6:30:2b:8f:b8:c7:e2:80:cf:84:39:2d:da:12:44.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.50.254' (ECDSA) to the list of known hosts.
root@192.168.50.254's password: 
[cjf01@localhost ~]$ 

2. 不登录执行命令 :客户端使用jcjf02的用户身份不登录到服务器,执行查看服务器网卡配置文件的内容

首先在服务机创建cjf02用户并设置密码

[root@localhost ~]# useradd cjf02
[root@localhost ~]# passwd cjf02
更改用户 cjf02 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

创建好之后 输入命令 ssh cjf02@192.168.50.254 vim /etc/syscomfig/network-scripts/ifcfg-ens33 并执行 ssh cjf02@192.168.50.254后面直接跟上执行命令 就完成了

[cjf01@localhost ~]$ ssh cjf02@192.168.50.254 cat vim /etc/sysconfig/network-scripts/ifcfg-ens33
The authenticity of host '192.168.50.254 (192.168.50.254)' can't be established.
ECDSA key fingerprint is SHA256:j+z8eqXkR7Z+qDCk5mMNIygkI9DSjJ7KFIvwIxIdXbM.
ECDSA key fingerprint is MD5:dc:e6:30:2b:8f:b8:c7:e2:80:cf:84:39:2d:da:12:44.
Are you sure you want to continue connecting (yes/no)? yes
pts/ifcfg-ens33
cjf02@192.168.50.254's password: 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.50.254
NETMASK=255.255.255.0
GATEWAY=192.168.50.254

scp:基于ssh的远程复制命令

形式::本地<-->本地

              本地<-->远程 : 远程路经在后

              远程<-->本地 : 远程路径在前

              远程<-->远程

本地--本地 案例:

将本地root下的0.txt 复制 本地的opt下:

命令scp /root/0.txt /opt 

[root@localhost ~]# touch 0.txt
[root@localhost ~]# scp /root/0.txt /opt 
[root@localhost ~]# ll
总用量 8
-rw-r--r--. 1 root root    0 5月  17 18:30 0.txt
drwxr-xr-x. 2 root root    6 5月  17 18:24 1.txt
-rw-------. 1 root root 1683 4月  24 17:26 anaconda-ks.cfg
-rw-r--r--. 1 root root 1731 4月  24 17:27 initial-setup-ks.cfg
drwxr-xr-x. 2 root root    6 4月  24 17:28 公共
drwxr-xr-x. 2 root root    6 4月  24 17:28 模板
drwxr-xr-x. 2 root root    6 4月  24 17:28 视频
drwxr-xr-x. 3 root root   24 4月  28 08:54 图片
drwxr-xr-x. 2 root root    6 4月  24 17:28 文档
drwxr-xr-x. 2 root root    6 4月  24 17:28 下载
drwxr-xr-x. 2 root root    6 4月  24 17:28 音乐
drwxr-xr-x. 2 root root    6 4月  28 08:56 桌面
[root@localhost ~]# cd /opt
[root@localhost opt]# 
-rw-r--r--. 1 root root 0 5月  17 18:30 0.txt

本地--远程 案例:

将客户机root下的0.txt 移到 服务机的root用户下的/opt下

输入 scp /root/0.txt root@192.168.50.254:/opt

[root@localhost opt]# scp /root/0.txt root@192.168.50.254:/opt
root@192.168.50.254's password: 
0.txt                                          100%    0     0.0KB/s   00:00   

远程--本地 案例:

将客户机opt下的0.txt移到 客户机的root下

输入scp root@192.168.50.254:/opt/0.txt .     “.”代表当前目录

[root@localhost opt]# scp root@192.168.50.254:/opt/0.txt .
root@192.168.50.254's password: 
0.txt                                          100%    0     0.0KB/s   00:00   

远程--远程:

准备三台虚拟机 把适配器自定义全都设置一个段 在进到虚拟机把三台虚拟机网卡网段设置成一样的

完成以上步骤即可用一台客户机控制两台

案例:用客户机把192.168.50.50服务器上的0.txt移到192.168.50.60服务器上

命令:scp root@192.168.50.50:/0.txt root@192.168.50.60:/root

sftp: 安全的文件传输程序

sftp后面输入服务机IP即可从对方获取文件或者上传文件

命令前可加“L”加L代表命令客户机 不加L代表命令服务机

put:上传

get:获取

get获取

[root@localhost opt]# sftp 192.168.50.254
root@192.168.50.254's password: 
Connected to 192.168.50.254.
sftp> 
sftp> get 2.txt
Fetching /root/2.txt to 2.txt
sftp> exit
[root@localhost opt]# ll
总用量 0
-rw-r--r--. 1 root root 0 5月  17 18:50 0.txt
-rw-r--r--. 1 root root 0 5月  17 18:57 2.txt

put上传

sftp> put 0.txt
Uploading 0.txt to /root/0.txt
0.txt                                          100%    0     0.0KB/s   00:00  

密钥对验证:提供面交互的密码验证

ssh-keygen 客户端生成密钥对(私钥)

ssh-copy-id【服务机id】 客户机将公钥上传至服务器

简单来说完成这些步骤再次远程连接服务器就可以不要密码

输入ssh-keygen 创建密钥 然后回车直到最后一步

[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Qe4jJU+XXu09rPYCD2m6o4WrO24YNQWMWtN0Ey40b0E root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|    ==oEo        |
|   +.o=+o  . .   |
|  o ..o+= o . .  |
| .   oo* + . ... |
|    . o S . . .o.|
|   .   ... =  . .|
|    o  . .o +o   |
|   . o  oo  .o.  |
|    o++o..o   .. |
+----[SHA256]-----+
[root@localhost ~]#

去到服务机可以看到生成 .ssh虚拟文件

[root@localhost ~]# ls -la
drwx------.  2 root root   80 5月  17 15:44 .ssh

再次输入ssh-copy-id(192.168.50.254)点击回车 会提示输入密码 然后继续回车就完成了

[root@localhost ~]# ssh-copy-id 192.168.50.254
/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
root@192.168.50.254's password: 

Number of key(s) added: 1

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

[root@localhost ~]# 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值