Linux中SSH远程访问和控制的实现

 更新时间:2024年12月19日 11:38:27   作者:运维郁郁久居人下  
SSH是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能,本文主要介绍了Linux中SSH远程访问和控制的实现,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、SSH服务的概述

1.1、概念

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。

SSH客户端: Putty、 Xshell、 CRT、MobaXterm、FinalShell

1.2、SSH数据传输原理

SSH客户端与服务端是通过网络来进行数据文件传输的,数据传输是加密的,可以防止信息泄露,(并不安全)数据传输是压缩的,可以提高传输速度。

1.3、SSH服务端: OpenSSH

OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux 操作系统。
Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。
执行"systemctl start sshd"命令即可启动sshd 服务
sshd 服务默认使用的是TCP的22端口,安全协议版本sshv2,出来2之外还有1(有漏洞)
sshd服务的默认配置文件是/etc/ssh/sshd_config
ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件。

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

  • OpenSSH 常用配置文件有两个/etc/ssh/ssh_config 和/etc/sshd_config。
  • ssh_config:为客户端配置文件,设置与客户端相关的应用可通过此文件实现
  • sshd_config:为服务器端配置文件,设置与服务端相关的应用可通过此文件实现。

二、配置OpenSSH服务端

vim /etc/ssh/sshd_config

Port 22    ### 监听端口为22
ListenAddress 0.0.0.0   ###监听地址为任意网段,也可用指定OpenSSH服务器的具体IP

UseDNS no     ###禁用DNS反向解析,以提高服务器的响应速度

三、sshd 服务的两种验证方式

3.1、密码验证

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

3.2、密钥对验证

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

密钥有两种

对称密钥

非对称密钥

非对称:RSA,创建出一个公钥,一个私钥,验证的话,私钥必须要和公钥能对应匹配,才允许登录、交互、否则拒绝。

PS:公钥和私有,实际上就是两个文件

当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。

四、使用SSH客户端程序

4.1、ssh远程登录方式

登录 方法一:

ssh [远程主机用户名] @[远程服务器主机名或IP地址] -p port
当在 Linux 主机上远程连接另一台 Linux 主机时,如当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh   IP,端口默认即可,如果端口不是默认的情况下,需要使用-p 指定端口。

登录方法二:

ssh -l [远程主机用户名] [远程服务器主机名或IP 地址] -p port
-l :-l 选项,指定登录名称。
-p:-p 选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)

4.2、扩展命令

1. 使用ssh连接远程主机时加上“-o StrictHostKeyChecking=no”的选项。

2. 一个彻底去掉这个提示的方法是,修改/etc/ssh/ssh_config文件(或$HOME/.ssh/config)中的配置,添加如下两行配置:

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

五、构建密钥对验证的SSH

5.1、公钥和私钥的关系

在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。
公钥用来给数据加密,用公钥加密的数据只能使用私钥解

构建密钥对验证的SSH原理首先ssh通过加密算法在客户端产生密钥对(公钥和私钥),公钥发送给服务器端,自己保留私钥,如果要想连接到带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下寻找事先放上去的对应用户的公用密钥,然后把它和连接的SSH客户端发送过来的公用密钥进行比较。如果两个密钥一致,SSH服务器就用公钥加密"质询"(challenge)并把它发送给SSH客户端。

5.2、scp复制

scp:scp是secure copy的简写(安全性复制),用于在Linux下进行远程拷贝文件的命令,而且scp传输是加密的。

1.###本地文件复制到服务器
scp sheng root@192.168.100.141:/opt
2.####复制服务器的文件到本地
scp root@192.168.100.141:/opt/test/ ./
3.####本地目录复制到服务器
scp -r 1234/ root@192.168.100.141:/opt

5.3、安全性传输sftp

sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的网络的加密方法。

到此这篇关于Linux中SSH远程访问和控制的文章就介绍到这了,更多相关Linux SSH远程访问和控制内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Linux虚拟机无网络问题的解决方案(yum无法使用)

    Linux虚拟机无网络问题的解决方案(yum无法使用)

    在下载虚拟机后,由于网络没有配置好,会遇到没网问题,导致yum无法使用,下载不了软件,当我们安装软件时出现下面情况:could not retrieve mirrorlist,所以本文给大家介绍了Linux虚拟机无网络问题的解决方案(yum无法使用),需要的朋友可以参考下
    2024-11-11
  • Linux md5sum命令的使用方法

    Linux md5sum命令的使用方法

    这篇文章主要介绍了Linux md5sum命令的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Apache网页的优化、安全与防盗链图文详解

    Apache网页的优化、安全与防盗链图文详解

    防盗链就是防止别人的网站代码里面盗用服务器的图片、文件、视频等相关资源,下面这篇文章主要给大家介绍了关于Apache网页的优化、安全与防盗链的相关资料,需要的朋友可以参考下
    2022-10-10
  • redhat Server release 5.2 安装配置简明教程

    redhat Server release 5.2 安装配置简明教程

    系统安装:系统安装采用光盘安装,以前一直从USB移动硬盘安装,前几天心血来潮,刻成了DVD,以示严肃和一切从头开始,呵呵。
    2009-08-08
  • Linux命令学习总结之rmdir命令

    Linux命令学习总结之rmdir命令

    这篇文章主要介绍了Linux命令学习总结之rmdir命令的相关资料,需要的朋友可以参考下
    2016-01-01
  • 下载tomcat放到linux上步骤详解

    下载tomcat放到linux上步骤详解

    在本文里我们给大家整理了关于如何下载tomcat放到linux上的相关图文步骤以及知识点,需要的朋友们学习下。
    2019-05-05
  • 在Ubuntu20.04 LTS中配置Java开发环境

    在Ubuntu20.04 LTS中配置Java开发环境

    这篇文章主要介绍了在Ubuntu20.04 LTS中配置Java开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Ubuntu18.04服务器密码忘记或被篡改如何重置密码

    Ubuntu18.04服务器密码忘记或被篡改如何重置密码

    这篇文章主要介绍了Ubuntu18.04服务器密码忘记或被篡改如何重置密码,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Linux  crontab 命令的使用

    Linux crontab 命令的使用

    这篇文章主要介绍了Linux crontab 命令的使用,帮助大家更好的理解和学习Linux系统,感兴趣的朋友可以了解下
    2020-08-08
  • Linux之iptables命令的使用方式

    Linux之iptables命令的使用方式

    这篇文章主要介绍了Linux之iptables命令的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07

最新评论