Linux----SSH远程连接服务

article/2025/11/9 3:20:03

一、SSH介绍

1、SSH介绍

  • SSH是一个应用层协议

    • 实现Linux的远程加密连接

    • 适用于Linux服务器远程管理

  • Telnet

    • 远程连接、不加密

    • 适用于局域网网络设备的远程连接

2、管理Linux服务器的方式

  • 本地管理

    • 安装系统、故障修复

  • 远程管理(使用频率较高)

3、确保Linux服务器正常启动SSH服务

  • 确保SSH服务正常运行

  • SSH服务端口22/tcp

 [root@localhost ~]# ps aux | grep sshroot        937  0.0  0.4 112900  4324 ?        Ss   17:56   0:00 /usr/sbin/sshd -Droot       1196  0.0  0.6 161512  6084 ?        Ss   17:57   0:00sshd: root@pts/0root       1237  0.0  0.0 112812   964 pts/0    S+   18:20   0:00 grep --color=auto ssh[root@localhost ~]# ps -elf |grep ssh4 S root        937      1  0  80   0 - 28225 poll_s 17:56 ?        00:00:00 /usr/sbin/sshd -D4 S root       1196    937  0  80   0 - 40378 poll_s 17:57 ?        00:00:00 sshd: root@pts/00 S root       1240   1198  0  80   0 - 28202 pipe_w 18:20 pts/0    00:00:00 grep --color=auto ssh​
  • 对应服务端软件

 [root@localhost ~]# rpm -qf /usr/sbin/sshdopenssh-server-7.4p1-21.el7.x86_64

4、客户端软件

  • Windows

    • XShell

    • SecureCRT

    • Putty

  • Linux

    • ssh命令

 [root@localhost ~]# which ssh/usr/bin/ssh[root@localhost ~]# rpm -qf /usr/bin/sshopenssh-clients-7.4p1-21.el7.x86_64​

二、ssh远程连接操作

1、ssh远程连接

 // ssh 用户名@服务器地址[root@client ~]# ssh root@192.168.152.11The authenticity of host '192.168.152.11 (192.168.152.11)' can't be established.ECDSA key fingerprint is SHA256:bxSRt15R3GMzRu2+B9CU/dOHgaH/bQNlWmrSpWHNed4.ECDSA key fingerprint is MD5:58:73:3c:d6:06:c2:58:a1:fc:7d:b9:c7:1d:bd:97:e7.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.152.11' (ECDSA) to the list of known hosts.root@192.168.152.11's password: Permission denied, please try again.root@192.168.152.11's password: Last login: Thu Jan  6 18:31:25 2022 from 192.168.152.1​

2、执行远程命令

 [root@client ~]# ssh root@192.168.152.11 uptimeroot@192.168.152.11's password: Permission denied, please try again.root@192.168.152.11's password: 18:33:07 up 2 min,  1 user,  load average: 0.13, 0.19, 0.09[root@client ~]# ssh root@192.168.152.11 ifconfig root@192.168.152.11's password: ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.152.11  netmask 255.255.255.0  broadcast 192.168.152.255inet6 fe80::2332:e633:8b27:d20a  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:b9:db:e8  txqueuelen 1000  (Ethernet)RX packets 392  bytes 45076 (44.0 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 272  bytes 41766 (40.7 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3、远程拷贝文件

  • scp命令使用

    • 参数

      • -r:拷贝目录

      • -P:指定端口

#scp 源文件 用户名@服务器地址:目录

 [root@client ~]# vim /opt/file10.txt[root@client ~]# scp /opt/file10.txt root@192.168.152.11:/tmproot@192.168.152.11's password: file10.txt                      100%    4     1.9KB/s   00:00[root@server ~]# ls /tmp/file10.txt  ks-script-mP33Qu  yum.log​//以tank用户登录并将服务器文件夹copy到本地[root@localhost www]# scp -r tank@192.16.1.108:/var/www/blog /home/www/blog  ​//将本地文件copy到服务器,添填写用户,默认当前用户[root@localhost www]# scp /home/www/blog/index.php 192.16.1.108:/var/www/blog  
  • rsync

    • 前提

      • 两方之间必须都有rsync软件

    • 参数

      • -a:保留文件权限

      • -v:显示拷贝的详情

    • 增量数据

      • 只会拷贝变化的数据,

 [root@client ~]# rsync -av /opt/python/ root@192.168.152.11:/tmp/root@192.168.152.11's password: sending incremental file list./1.py10.py2.py3.py4.py5.py6.py7.py8.py9.py​sent 581 bytes  received 209 bytes  316.00 bytes/sectotal size is 0  speedup is 0.00[root@server ~]# ls /tmp/10.py  2.py  4.py  6.py  8.py  file10.txt        yum.log1.py   3.py  5.py  7.py  9.py  ks-script-mP33Qu​

三、ssh怎么实现加密

1、数据加密

  • 利用数学上的算法+密钥实现数据加密

    • 非对称加密算法

    • ssh首次连接主机时,主机会自动发送自己的密钥,询问是否接受

    • ssh密钥存储位置:

      • ~/.ssh/known_hosts

2、数据加密类型

  • 对称加密算法

    • 数据加密、解密使用相同的密钥

img

  • 非对称加密算法

    • 数据加密、解密使用不同的密钥

      • 基于密钥对(公钥,私钥)

        • 两个都是数学算法生成的随机数

      • 公钥加密、私钥解密

        • 一个公钥只能对应一个私钥

img

四、免密SSH

1、ssh认证方式

  • 注意事项

    • 免密ssh是基于用户的

    • 免密ssh是单向的

  • 基于用户名,密码认证【默认】

  • 基于密钥的认证

    • 免密的ssh

2、基于密钥的认证流程

  • 在客户端生成密钥对

  • 将公钥拷贝到服务器

3、配置免密的ssh

  • 在客户端生成密钥对

 [root@client ~]# ssh-keygen -t rsaGenerating 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:YEk+fF0Ii+R6ZBK6GOeZ4zbhIBXCwtydKeNjwOp3TVA root@clientThe key's randomart image is:+---[RSA 2048]----+|* o o *E.. ..    ||.B * % o o..     ||+ * + & o .      ||.* B * =         ||= O o + S        ||.= + o .         ||  * .            || . .             ||                 |+----[SHA256]-----+
  • 将公钥拷贝到服务器

[root@client ~]# ssh-copy-id root@192.168.152.11
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/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.152.11's password: Number of key(s) added: 1Now try logging into the machine, with:   "ssh 'root@192.168.152.11'"
and check to make sure that only the key(s) you wanted were added.
  • 自动将公钥拷贝到对方服务器用户家目录

/root/.ssh/authorized_keys
  • 验证

[root@client ~]# ssh root@192.168.152.11 ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.152.11  netmask 255.255.255.0  broadcast 192.168.152.255inet6 fe80::2332:e633:8b27:d20a  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:b9:db:e8  txqueuelen 1000  (Ethernet)RX packets 4538  bytes 344665 (336.5 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 914  bytes 111606 (108.9 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

4、实现windows和linux之间免密登录

  • 在windows生成密钥对

https://note.youdao.com/yws/public/resource/09cca8ab7a03af721408094d133dc002/xmlnote/50F435318AAA4F288A34D951A9965767/3B6E6DE95CEC442F844602004A8914C2/25383

https://note.youdao.com/yws/public/resource/09cca8ab7a03af721408094d133dc002/xmlnote/50F435318AAA4F288A34D951A9965767/EF302CC971134D6C95583A90DA8B3951/25385

img

https://note.youdao.com/yws/public/resource/09cca8ab7a03af721408094d133dc002/xmlnote/50F435318AAA4F288A34D951A9965767/A25A099ADB744BC087C2FFECAE5138AB/25391

  • 将公钥拷贝到服务器

[root@localhost ~]# rz
[root@localhost ~]# cat id_rsa_2048.pub >> /root/.ssh/authorized_keys [root@localhost ~]# cat /root/.ssh/authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtQk+Kx4bafhFsSwZC09RQXT2UIux6KDOeXmzYxN+oZFrXqSIGHHforssyiEUqV9dfETmv6kYencgSsU37ecSpn/3QUVuTU6bu26zF4sSF/w+qYuylJ1TuDg5HsqpRWbrJ5Q8eGLg9lwozlCQ0lswLnxmAM1B66SJuY8Lsm1W9f5XBA/RweNiVJwFHoqLHTVwnn0/Gt/LdfL/LnqH+TxbSjnf9mRdBVtogsAITDCBqpzRDCW/XaBkmKOe9mXC/8rZ6saZdLyZKQXefl52Wdh9mYbRVvO32YTnTdLk1mQ3fwOotBlVIPMMrx2HLRIhQXP1L7q9U4f39uPIqYcT3rUvj root@node01.linux.com
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArrxv/vWwlcsBBNkYCQ0K07nqqDDbbd27eFRIrT+uX0SQ+i1dIXcBgNDf0Zt3nJw9n8bAnksiKxxC6OzRaCMIm/XDr8V75gd3DybeBXO7IVybA/OAr6LVRY5ehAI9OyqMPe6yUxRyekk6uV3KOattMeD2rya0JBTXnjgZjRqc4pApxdh4pAwZGGtaS447TLogLrdnfxAvcEp7dyXl5li/wPRRB2dHZEjyULErWl+R7+Li0nlz2TO790dqHYBcnqdmwMO5iCjIL5trVRqPAgf1HJ7N7/M298h8nCgYR0w80T/E7d/M9/H5x63UYGF/yck891G9tgtqkJsIgukEOXGudQ==[root@localhost ~]# 

https://note.youdao.com/yws/public/resource/09cca8ab7a03af721408094d133dc002/xmlnote/50F435318AAA4F288A34D951A9965767/E40427E5104045209196D504813665E1/25397

五、ssh服务配置

1、配置文件

  • /etc/ssh/sshd_config

[root@server ~]# vim /etc/ssh/sshd_config 
  • 重新启动sshd服务或者kill -1 /etc/ssh/sshd_config

2、常用配置项

  • 修改ssh服务端口

Port 44444
[root@localhost ~]# systemctl restart sshd
  • 禁用密码认证

PasswordAuthentication no
  • 禁止Root用户远程登录

PermitRootLogin no
  • 禁用DNS反解,加快ssh连接速度

UseDNS no 

http://chatgpt.dhexx.cn/article/GvtQ7CyA.shtml

相关文章

如何通过ssh远程连接自己的主机(Linux)?

1.查看自己的网卡是否工作正常 可以看到&#xff0c;有多块网卡在工作&#xff0c;其中eno1是有线网卡&#xff0c;UP表示开启了&#xff0c;但没有运行&#xff08;RUNNING&#xff09;&#xff0c;因为此时主机并没有连接有线网络。 lo是本地虚拟网卡&#xff0c;所有设备都…

通过SSH连接到Linux服务器

目录 前提&#xff1a; 一、通过账号密码方式进行ssh连接 二、通过免密方式进行ssh连接&#xff08;公、私钥校验&#xff09; 三、通过第三方工具&#xff08;XShell&#xff09;免密方式进行ssh连接 前提&#xff1a; 传统的网络服务程序&#xff0c;如ftp&#xff0c;p…

Linux服务器的SSH连接使用

本文已同步至个人博客: liaosis blog----Linux服务器的SSH连接使用 一.什么是SSH? 简单说,SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,…

【SpringBoot】| 邮箱发送验证码,你会了吗?

目录 &#x1f981; 题外话&#x1f981; 提前准备2.1 配置邮箱第三方登录2.1.1 点击设置——账户2.1.2 开启POP3/SMTP服务 2.2 添加依赖2.3 yaml配置 &#x1f981; 进入主题&#x1f981; 测试使用&#x1f981; 尾声3.1 安利一个生成验证码的工具类3.1.1 添加依赖3.1.2 编写…

发送验证码倒计时效果实现

目录 前言一、应用场景二、代码演示三、 效果演示总结 前言 今天用vueuse/core中提供的一个方法&#xff0c;实现发送验证码时倒计时的一个效果。这样的场景使我们经常会见到的&#xff0c;一起来看一下如何实现 一、应用场景 用户选择手机号和验证码登录的时候&#xff0c;往…

阿里云短信服务——短信发送验证码

引言 短信服务现在在很多地方都用的到&#xff0c;我们最多接触到的可能就是验证码的发送了&#xff1b;现在很多大厂都提供由短信服务对应的api&#xff0c;直接调用就可以轻松实现短信发送&#xff1b;下面我以阿里云为例&#xff0c;演示一下如何短信发送验证码&#xff1b…

实战总结:邮箱发送验证码

java邮箱发送验证码 目前项目中需要同时支持短信和邮箱验证&#xff0c;短信用的是腾讯云就不多说了&#xff0c;在此分享一下邮箱验证码发送。 首先&#xff0c;作为发送邮箱&#xff0c;需要开启POP3/SMTP/IMAP&#xff0c;登录邮箱–设置–账户–开启POP3/SMTP/IMAP&#x…

SpringBoot整合邮箱发送验证码

1、以QQ邮箱为例&#xff0c;点开设置开启POP3/SMTP服务 2、创建一个springboot项目 1&#xff09;引入maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId> </dependen…

Vue3发送验证码-防止页面刷新-发送验证码状态改变

效果: 1.页面DOM <div v-show"state.sendAuthCode" click"getCode">发送验证码</div> <div v-show"!state.sendAuthCode" ><span class"auth_text_blue">{{state.second}} </span>s</div>2. 业务…

C#实现手机发送验证码

目录 具体实现——封装一个类里&#xff0c;U层直接调用 配置文件的内容如下 验证手机号的正则表达式 首先先需要注册第三方网站&#xff0c;给大家推荐一个网站互亿无线&#xff0c;注册了之后每个用户可以免费发送50条短信。 下面以C#实现手机发送验证码为例。基本思路是本地…

uniapp 发送验证码倒计时

实现原理&#xff0c;点击发送验证码按钮&#xff0c;开始倒计时效果 准备工作 &#xff1a;在data中定义变量 ​​​​​​​ 点击事件 let timerId setInterval(() > {this.countDown--;this.sendText this.countDown "秒后重试";if (this.countDown < 0)…

html给手机号发送验证码,js如何实现手机发送验证码功能

js如何实现手机发送验证码功能 发布时间:2021-06-21 12:24:46 来源:亿速云 阅读:82 作者:小新 这篇文章将为大家详细讲解有关js如何实现手机发送验证码功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 效果图: 代码如下:html&g…

Python发送验证码短信

Python发送验证码短信 前提条件相关介绍实验环境发送验证码短信账户注册查看用户名查看密码主要步骤代码实现输出结果 前提条件 熟悉Python基本语法 相关介绍 Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被…

html如何发送验证码到手机,页面效果,给手机发送验证码

html>定时发送验证码 var wait 5; function send(o) { if(wait5){ //向服务器发送请求&#xff0c;给手机发送验证码 // $.post("/simple/user/sendCode/mobile", // { // "mobile" : "${user.mobile}", // "number" : 2 // }, …

实现发送验证码功能

// 需求一&#xff1a;发送验证码// 用户点击之后&#xff0c;显示05秒后重新获取// 时间到了&#xff0c;自动改为重新获取let code document.querySelector(.code)code.addEventListener(click, function () {this.innerHTML 05秒后重新获取let mark 5let time setInterva…

发送验证码倒计时

点击发送验证码按钮的时候 会调用ajax请求发送验证码 但是 如果没有设置倒计时 如果一直重复点击按钮的话 会一直请求发送验证码 所以我们要设置一个验证码倒计时 <input id"sendCodeId" type"button" class"btn btn-danger" click"sen…

微信小程序发送验证码

记录一下&#xff0c;小程序发送验证码的小案例。废话不多说&#xff0c;直接撸代码。。。 1、效果图如下 wxml: <view classheader> <input typenumber placeholder请输入手机号 bindinputmInput></input> </view> <view classnav> <v…

Javascript发送验证码

一、请求原理 由于现在网站的都有手机登陆或注册&#xff0c;向制定地址发送一个post活get请求&#xff0c;那么我们利用这一思路&#xff0c;就可以在本地上利用Ajax来模拟网站的登陆注册操作&#xff0c;从而实现向发送验证码。 二、获取第三方网站验证码接口 随便找一个带验…

简析发送手机验证码原理

文章目录 发放手机验证码手机验证码校验小结 在一般互联网网站&#xff08;如淘宝、京东等&#xff09;注册账号或者找回密码时通常让用户进行手机号码进行 发送验证码验证&#xff0c;这种方式能有效的保证帐号安全&#xff0c;下面来解析一下它的原理。 整体流程如下图如示&…

App接口测试总结

使用工具 Fiddler、Jmeter 测试步骤&#xff1a; 1. 确认接口 从开发人员那里获取接口文档&#xff0c;接口文档应该包括完整的功能接口、接口请求方式、接口请求URL、接口请求参数、接口返回参数。 如果当前项目没有接口文档&#xff0c;则可以使用fiddler对APP进行抓包确认…