当前位置: 首页 > news >正文

系统学习Linux-SSH远程服务(二)

概念

安全外壳协议,提供安全可靠的远程连接

特点

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

ssh提供了一组管理命令

ssh 远程登陆

scp 远程拷贝

sftp 远程上传下载

ssh-copy-id

ssh keygen 生成

提供了多种身份验证机制

身份验证机制

密码验证  需要提供密码

密钥对验证  无需提供密码,直接登录

验证过程

客户端发起请求  ssh 服务器IP地址

确认是否保存指纹信息,yes确认保存

输入目标主机密码

打开子shell建立会话

若退出,则使用exit

加密机制

单向加密  不可逆的加密算法

对称加密  加密和解密使用相同的密钥

非对称加密  加密和解密使用一组密钥对(公钥、私钥)


基本参数

服务名  sshd

端口号  TCP/22

配置文件

服务器端

/etc/ssh/sshd_config  ssh主程序sshd的配置文件

/etc/ssh/ssh_host_*  服务器的公钥和私钥文件

~/.ssh/authorized_keys  密钥库文件

客户端

/etc/ssh/ssh.config  客户端的全局配置文件

~/.ssh/known_hosts  客户端存储服务器主机指纹的文件

~/.ssh.id_rsa  客户端生成的私钥

~/.ssh.id_rsa.pub  客户端生成的公钥

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

配置文件解析

/etc/ssh/sshd_config

Port        监听端口

Listenaddress    监听地址,0.0.0.0表示监听所有地址

PubkeyAuthentication        是否启用密钥对验证

PasswordAuthentication    是否启用密码验证

PermitEmptyPasswords        是否启用空密码,密码验证时,最好关闭

AuthorizedKeysFile      .ssh/authorized_keys    密钥库文件

/etc/ssh/ssh_config

ConnectTimeout    连接超时时间

基本操作

ssh

作用:远程连接的客户端工具

格式:ssh [options]  [user@]hostname  [command]

实验

指定用户登录  

新建或用已有用户

1.useradd lwj01  创建用户

 2.passwd lwj01  修改密码

3.用普通用户远程客户端

4.ssh root@192.168.1.2  

5.输入正确密码后登陆成功

不登录执行命令

1.ssh root@192.168.1.2 mkdir /opt/111 -p

2.不登陆情况创建名为111的文件夹

.

3.192.168.1.2虚拟机验证

指定端口  -p

指定网卡  -b


scp

作用:基于ssh的远程复制命令

实验

本地<-->本地

操作本机为本地与本地操作,不需要实验

本地<-->远程

案例:把opt文件夹下111文件夹复制到~下 

192.168.1.2虚拟机验证

远程<-->远程

案例:把192.168.1.2虚拟机opt下11.txt文件复制到192.168.1.3虚拟机~下

192.168.1.3虚拟机验证


sftp

作用:安全的文件传输程序

语法:sftp 地址ip 

输入密码后会进入输入命令模式

  • ls:列出远程服务器上当前目录的文件列表。
  • pwd:显示当前所在的远程服务器目录。
  • cd:切换远程服务器上的目录。
  • get <remote_filename>:从远程服务器下载文件到本地。
  • put <local_filename>:将本地文件上传到远程服务器。
  • rm <remote_filename>:删除远程服务器上的文件。
  • mkdir <directory_name>:在远程服务器上创建目录。

密钥对验证

作用:提供免交互的密码验证

实验

客户端生成密钥对  ssh-keygen

客户端将公钥上传至服务器  ssh-copy-id

服务器启用密钥对验证

客户端测试

生成密钥对:首先,在本地计算机上生成密钥对,一个私钥(通常存储在本地计算机上)和一个公钥(要上传到远程服务器)。可以使用以下命令生成密钥对:

ssh-keygen -t rsa

上传公钥到远程服务器:将生成的公钥上传到远程服务器上,这可以通过以下命令完成:

ssh-copy-id username@remote_host

其中,username是您在远程服务器上的用户名,remote_host是服务器的IP地址或域名。

验证密钥对登录:完成上述步骤后,可以尝试使用密钥对进行SSH登录。使用以下命令:

ssh username@remote_host

如果一切顺利,现在应该可以无需输入密码即可登录到远程服务器。

禁用密码登录(可选):为了增加系统的安全性,建议禁用密码登录,并只允许密钥对登录。要禁用密码登录,需要修改SSH服务器的配置文件。打开 /etc/ssh/sshd_config 文件,并确保以下行处于注释状态:

#PasswordAuthentication yes

确保以下行没有被注释:

PubkeyAuthentication yes

保存修改并重启SSH服务:

sudo service ssh restart

现在,只能使用密钥对进行SSH登录。 请注意,密钥对验证是一种安全且推荐的身份验证机制。但为了维护系统的安全性,确保您的私钥存储在受密码保护的位置,并定期更换密钥。


http://www.lryc.cn/news/95093.html

相关文章:

  • PyTorch训练RNN, GRU, LSTM:手写数字识别
  • 基于深度学习的高精度道路瑕疵检测系统(PyTorch+Pyside6+YOLOv5模型)
  • 【裸辞转行】是告别,也是新的开始
  • 了解交换机接口的链路类型(access、trunk、hybrid)
  • Android系统启动流程分析
  • 如何在Ubuntu上安装OpenneBula
  • 解决MySQL中分页查询时多页有重复数据,实际只有一条数据的问题
  • 【数据结构】时间复杂度---OJ练习题
  • 京东自动化功能之商品信息监控是否有库存
  • 【SwitchyOmega】SwitchyOmega 安装及使用
  • CentOS5678 repo源 地址 阿里云开源镜像站
  • 【LLM】Langchain使用[二](模型链)
  • 简单机器学习工程化过程
  • 【MongoDB】SpringBoot整合MongoDB
  • 关于游戏引擎(godot)对齐音乐bpm的技术
  • 【Go】实现一个代理Kerberos环境部分组件控制台的Web服务
  • Spring Security 6.x 系列【63】扩展篇之匿名认证
  • 供应链管理系统有哪些?
  • 如何在PADS Logic中查找器件
  • Android 生成pdf文件
  • Kafka 入门到起飞 - 生产者发送消息流程解析
  • 基于单片机智能台灯坐姿矫正器视力保护器的设计与实现
  • 欧姆龙以太网模块如何设置ip连接 Kepware opc步骤
  • PLEX如何搭建个人局域网的视频网站
  • java学习02
  • libcurl库使用实例
  • 大数据存储架构详解:数据仓库、数据集市、数据湖、数据网格、湖仓一体
  • ESP32(MicroPython) 网页控制五自由度机械臂
  • 前端笔记_OAuth规则机制下实现个人站点接入qq三方登录
  • huggingface新作品:快速和简便的训练模型