Linux系统——ssh远程连接

Linux系统——ssh远程连接

  • 一、ssh协议介绍
    • 1、远程连接协议
    • 2、ssh服务基本操作
    • 3、ssh常用操作
  • 二、ssh加密
    • 1、加密算法类型
    • 2、对称加密算法
    • 3、非对称加密算法
  • 三、免密ssh的配置
    • 1、ssh认证方式
    • 2、配置免密ssh
    • 3、ssh-copy-id做了什么?
  • 四、ssh服务配置

一、ssh协议介绍

1、远程连接协议

ssh协议,应用层

远程连接的协议:
1、ssh协议,典型连接linux服务器、网络设备【密文】
2、telnet协议,典型在局域网连接网络设备【明文】
3、RDP协议,典型连接windows服务器

服务器操作方式:
1、本地操作
2、远程连接操作

2、ssh服务基本操作

  • 查看sshd服务的状态
[root@martin-host ~]# systemctl status sshd 
● sshd.service - OpenSSH server daemonLoaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)Active: active (running) since 二 2024-10-22 09:04:39 CST; 38min agoDocs: man:sshd(8)man:sshd_config(5)Main PID: 1160 (sshd)Tasks: 1CGroup: /system.slice/sshd.service└─1160 /usr/sbin/sshd -D1022 09:04:39 martin-host.linux.com systemd[1]: Starting OpenSSH server daemon...
1022 09:04:39 martin-host.linux.com sshd[1160]: Server listening on 0.0.0.0 port 22.
1022 09:04:39 martin-host.linux.com sshd[1160]: Server listening on :: port 22.
1022 09:04:39 martin-host.linux.com systemd[1]: Started OpenSSH server daemon.
[root@martin-host ~]# 
[root@martin-host ~]# ps -elf | grep ssh
4 S root       1160      1  0  80   0 - 28225 poll_s 09:04 ?        00:00:00 /usr/sbin/sshd -D
// 查看ssh服务的端口
[root@martin-host ~]# netstat -tunlp | grep ssh 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1160/sshd           
tcp6       0      0 :::22                   :::*                    LISTEN      1160/sshd         
  • 查看sshd服务对应的软件
[root@martin-host ~]# which sshd
/usr/sbin/sshd[root@martin-host ~]# rpm -qf /usr/sbin/sshd
openssh-server-7.4p1-21.el7.x86_64
  • windows客户端软件
    xshell、secureCRT、xterminal、XModerm、Putty

3、ssh常用操作

  • 远程连接
# ssh 用户名@主机
  • 执行远程命令
[root@martin-host ~]# ssh root@192.168.140.10 ifconfig ens33 
  • 远程拷贝文件
// 远程拷贝文件 
[root@martin-host ~]# scp file01 root@192.168.140.10:/tmp 
root@192.168.140.10's password: 
file01                                                                100%    4     2.2KB/s   00:00    [root@martin-host ~]# scp root@192.168.140.10:/etc/fstab ./ 
root@192.168.140.10's password: 
fstab                                                                100%  465   339.8KB/s   00:00    // 拷贝目录 
[root@martin-host ~]# scp -r test/ root@192.168.140.10:/tmp

二、ssh加密

1、加密算法类型

对称加密算法
非对称加密算法

2、对称加密算法

加密、解密时使用的密钥是一样的
在这里插入图片描述典型算法: DES、3DES、AES

  • 加密数据
[root@martin-host ~]# openssl enc -e -des -in /opt/file01 -out /opt/file01_new 
enter des-cbc encryption password:
Verifying - enter des-cbc encryption password:
  • 解密数据
[root@node01 ~]# openssl enc -d -des -in /opt/file01_new -out /opt/file01 
enter des-cbc decryption password:

3、非对称加密算法

加密、解密时使用的密钥是不一样的

加密方式:公钥加密、私钥解密

典型算法:RSA、DSA

在这里插入图片描述

三、免密ssh的配置

1、ssh认证方式

基于密码的认证
基于密钥的认证(免密ssh)

2、配置免密ssh

  • 在客户端生成一个密钥对
[root@martin-host ~]# ssh-keygen -t rsa 
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:zYgk4ThXS0U8e9kY/Gu3iFhesz3rxqRJtFpnKRiNfCQ root@martin-host.linux.com
The key's randomart image is:
+---[RSA 2048]----+
|    . o+o.       |
|   o + .o E .    |
|  o + o  + @     |
|   o o ..+B *    |
|      . S.o= o . |
|          o X *  |
|         + B # . |
|        . + = *  |
|             ooo |
+----[SHA256]-----+[root@martin-host ~]# ls /root/.ssh/
id_rsa  id_rsa.pub
[root@martin-host ~]# 
  • 将公钥拷贝到远端的服务器
[root@martin-host ~]# ssh-copy-id root@192.168.140.10
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.140.10 (192.168.140.10)' can't be established.
ECDSA key fingerprint is SHA256:6If14U96x1VtkGO5zXGKxnmGRUw2Cv04pVWSeq6Rd0I.
ECDSA key fingerprint is MD5:9b:1c:33:d9:31:ff:4d:11:a7:bd:77:bb:b0:82:11:3e.
Are you sure you want to continue connecting (yes/no)? yes
/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.140.10's password: Number of key(s) added: 1Now try logging into the machine, with:   "ssh 'root@192.168.140.10'"
and check to make sure that only the key(s) you wanted were added.
  • 测试
[root@martin-host ~]# ssh root@192.168.140.10
Last login: Tue Oct 22 14:08:08 2024 from 192.168.140.1
[root@node01 ~]# exit
登出
Connection to 192.168.140.10 closed.[root@martin-host ~]# ssh root@192.168.140.10 hostname
node01
[root@martin-host ~]# 
[root@martin-host ~]# scp /etc/passwd root@192.168.140.10:/tmp/
passwd                                                                100% 2368     1.1MB/s   00:00    
[root@martin-host ~]# 注意:
1、ssh免密是基于用户的
2、ssh免密是单向的

3、ssh-copy-id做了什么?

  • 将公钥文件拷贝到远端服务器对应用户的家目录,改名为authorized_keys
[root@node01 ~]# ls -a /home/martin/.ssh/
.  ..  authorized_keys
  • 将密钥文件的权限修改为600
[root@node01 ~]# ls -l /home/martin/.ssh/
total 4
-rw------- 1 martin martin 408 Oct 22 14:18 authorized_keys
[root@node01 ~]# 

四、ssh服务配置

  • 配置文件
    /etc/ssh/sshd_config

  • 修改默认端口

[root@martin-host ~]# vim /etc/ssh/sshd_config 
Port 23333[root@martin-host ~]# systemctl restart sshd[root@martin-host ~]# netstat -tunlp | grep ssh
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      6022/sshd: root@pts 
tcp        0      0 0.0.0.0:23333           0.0.0.0:*               LISTEN      8472/sshd 
[root@node01 ~]# ssh root@192.168.140.135 -p 23333[root@node01 ~]# scp -P 23333 /etc/passwd root@192.168.140.135:/tmp/
  • 禁止使用root用户远程登录
[root@martin-host ~]# vim /etc/ssh/sshd_config 
PermitRootLogin no[root@martin-host ~]# systemctl restart sshd[root@node01 ~]# ssh -p 23333 martin@192.168.140.135
martin@192.168.140.135's password: 
[martin@martin-host ~]$ 
  • 关闭DNS解析
[root@martin-host ~]# vim /etc/ssh/sshd_config 
UseDNS no[root@martin-host ~]# systemctl restart sshd

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/453952.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Java微信小程序的的儿童阅读系统的详细设计和实现(源码+lw+部署文档+讲解等)

详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不…

【解决proto文件生成的java 在intellij idea引用会报错】

现象 下载新项目 代码有引用proto生成的java类 会一直报红 我的idea版本2024.2.3,比较新,自动装载了插件,旧版本需要自己装 解决方式 Maven生成资源 这一步是为了先从proto生成java文件 安装这个插件 右键项目->Maven->Generated…

国产电脑能装win系统吗_国产电脑安装windows要求及方法

国产电脑能装win系统吗?‌国产电脑可以安装Windows系统,但需要满足特定条件。‌‌目前只有CPU基于X86架构国产电脑才可以安装windows。下面小编就和大家一起来分析下国产电脑安装windows要求及方法。 国产电脑能装win系统吗? 答:‌国产电脑可…

天锐绿盾 vs Ping32:企业级加密软件大比拼

在信息安全日益重要的今天,企业级加密软件成为了企业保护敏感数据的得力助手。在众多加密软件中,天锐绿盾与Ping32凭借各自的优势,赢得了市场的广泛认可。那么,这两款软件究竟有何异同?哪款更适合您的企业呢&#xff1…

【Linux】进程优先级进程切换

文章目录 进程优先级查看进程优先级进程优先级的修改 进程切换进程切换的概念 总结 进程优先级 进程优先级是操作系统中用于决定进程调度顺序的重要属性。它表示一个进程在系统资源分配和 CPU 调度中的相对重要性。优先级越高的进程通常会获得更多的 CPU 时间和资源&#xff0…

【网页设计】CSS 盒子模型

目标 能够准确阐述盒子模型的 4 个组成部分能够利用边框复合写法给元素添加边框能够计算盒子的实际大小能够利用盒子模型布局模块案例能够给盒子设置圆角边框能够给盒子添加阴影能够给文字添加阴影 1. 盒子模型 页面布局要学习三大核心, 盒子模型, 浮动 和 定位. 学习好盒子模…

Spring6梳理15——Bean的作用域

目录 15.1 引入 15.1.1 Orders类 15.1.2 bean-scope.xml 15.1.3 OrdersTest类 15.1.4 运行截图 15.1 引入 在Spring中可以通过配置bean标签的scope属性来指定bean的作用域范围,各取值含义参加下表: 取值含义创建对象的时机singleton&#x…

拥抱趋势,洞察智慧!创客匠人「创始人IP创新增长班」圆满收官!

拥抱未来趋势,打造创始人IP,建立长期品牌价值。10月15日-17日,由创客匠人主办、创客匠人创始人&CEO老蒋担任主讲人的「创始人IP创新增长班」线下大课在成都生物城凯悦嘉轩酒店圆满收官。 本次大课,强大的势能吸引了来自全国各…

你知道吗?这个岗位只招2人,但HR那边却收到了1w份简历

引言 在当前经济环境下,求职者面临的挑战越来越大。互联网行业尤其如此,许多人挤破头都想进入大厂,但竞争异常激烈。如今的就业市场确实变得异常艰难。然而,随着AI大模型技术的兴起,对于那些掌握了相关技能的专业人才…

作业车间调度优化算法

作业车间调度优化算法 题目来源代码实现输出结果 题目来源 题目来源于葛英飞《智能制造技术基础》书中175页的题目,基余分配率的作业车间调度优化算法。书中这部分有程序流程图,但是没有代码,课后闲暇之余通过Python对其进行了简单的实现&am…

西南交通大学计算机软件专业上岸难度分析

C哥专业提供——计软考研院校选择分析专业课备考指南规划 西南交通大学计算机科学与技术2024届考研难度整体呈现"稳中有升"的态势。学硕实际录取33人,复试分数线362分,复试录取率71.74%;专硕(计算机技术)实际…

“2+1拼团:电商新风尚,驱动增长革新“

在当前经济环境下,商品供应过剩与同质化问题日益凸显,传统电商模式正面临严峻考验,难以有效应对消费者不断升级的需求。为此,一种新颖的21拼团购物模式应运而生,借助其别具一格的运营理念和吸引人的激励机制&#xff0…

企业文件怎么管控?这几个软件你一定要知道!

企业文件管控是确保数据安全、提高工作效率和满足合规要求的关键措施。它有助于保护敏感信息,防止数据泄露,同时提高文件的查找效率,减少重复工作,促进团队协作,支持决策制定,并维护企业的知识产权 。通过实…

[枚举坤坤]二进制枚举基础

我们都知道数据是以二进制形式存储在计算机中的。当我们使用十进制数进行编程时(如a10)实际上计算机要先进行一步转码,将其化为二进制的形式进行计算。如果在编程的过程中我们可以直接越过转码这一步去操纵二进制形式进行运算,程序…

政安晨【零基础玩转各类开源AI项目】基于本地Ubuntu (Linux ) 系统应用Gradio-Lite:无服务器 Gradio 完全在浏览器中运行

目录 简介 什么是@gradio/lite? 入门 1.导入 JS 和 CSS 2. 创建标签 3. 在标签内编写你的 Gradio 应用程序 更多示例:添加其他文件和要求 多个文件 其他要求 SharedWorker 模式 代码和演示playground 1.无服务器部署 2.低延迟 3. 隐私和安全 限制 尝试一下!…

深度学习面试笔试之循环神经网络(RNN)、门控循环单元(GRU)、长短期记忆(LSTM)

深度学习面试笔试之循环神经网络RNN、门控循环单元GRU、长短期记忆LSTM 循环神经网络(RNN)1. 什么是RNN1.1 RNN的应用1.2 为什么有了CNN,还要RNN?1.3 RNN的网络结构1.4 双向RNN1.5 BPTT算法 2. 其它类型的RNN3. CNN与RNN的区别4. 为什么RNN 训练的时候Loss波动很大…

CLion和Qt 联合开发环境配置教程(Windows和Linux版)

需要安装的工具CLion 和Qt CLion下载链接 :https://www.jetbrains.com.cn/clion/ 这个软件属于直接默认安装就行,很简单,不多做介绍了 Qt:https://mirrors.tuna.tsinghua.edu.cn/qt/official_releases/online_installers/ window 直接点exe Linux 先c…

Python | Leetcode Python题解之第491题非递减子序列

题目: 题解: class Solution:def findSubsequences(self, nums: List[int]) -> List[List[int]]:def dfs(i, tmp):if i len(nums):if len(tmp) > 2:res.append(tmp[:]) # 拷贝,tmp[:]而非tmpreturn# 选 nums[i]if not tmp or nu…

我们可以用微服务创建状态机吗?

大家好,我是锋哥。今天分享关于【我们可以用微服务创建状态机吗?】面试题?希望对大家有帮助; 我们可以用微服务创建状态机吗? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 是的,微服务架构可…

Java | Leetcode Java题解之第496题下一个更大元素I

题目&#xff1a; 题解&#xff1a; class Solution {public int[] nextGreaterElement(int[] nums1, int[] nums2) {Map<Integer, Integer> map new HashMap<Integer, Integer>();Deque<Integer> stack new ArrayDeque<Integer>();for (int i num…