安全通道协议——SSH

安全通道协议——SSH

前言

平时我们链接终端的时候用的一般都是finalshell、xshell等之类的远程链接工具,那这些工具是通过什么协议与终端之间进行链接的呢?就是ssh——安全通道协议。

一、SSH的简介

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

ssh客户端:Putty、xshell、finalshell、CRT、MOBAXterm。

ssh服务端:OpenSSH。

OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX、Linux操作系统。centos7系统默认已安装openssh相关软件包,并将sshd服务添加为开机自启动。

sshd服务默认使用的是TCP的22端口,安全协议版本sshv2。

二、SSH的功能和作用

ssh服务端主要包含两个服务功能:ssh远程连接和sftp服务。

作用:sshd服务使用ssh协议可以用来进行远程控制,或在计算机之间传送文件,相比较与之前用Telnet方式来传输文件要安全很多,因为Telnet使用明文传输,ssh是加密传输。

三、SSH的配置文件

sshd服务的默认配置文件是/etc/ssh/sshd_config,ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件。服务端主程序:/usr/sbin/sshd。

四、sshd服务的验证方式

sshd服务支持两种验证方式:

  1. 密码验证:对服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但从客户端角度来看,正在链接的服务器有可能被假冒:从服务器角度来看,当遭遇密码穷举(暴力破解)攻击时防御能力比较弱。
  2. 密钥对验证:要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件-非对称密钥-创建密钥的类型/模式(公钥、密钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、密钥进行加密/解密关联验证,大大增强了远程管理的安全性。该方式不易被假冒,且可以免交互登录,在shell中被广泛使用。

当密码验证、密钥对验证都启用时,服务器将优先使用密钥对验证。对于安全性要求较高的服务器,建议将密码验证方式禁用,只允许启用密钥对验证方式。如果没有特殊要求,则两种都可以启用。

五、构建密钥对验证的SSH

1.公钥和私钥的关系

在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。

公钥用来给数据加密,用公钥加密的数据只能使用私钥解。

2.构建密钥对验证的SSH原理

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

六、SSH远程登录方式

方法一:

ssh[远程主机用户名] @[远程服务器主机名或IP地址] -p port

选项-p:制定登录端口

image-20220624162238582

当在Linux主机上远程链接另一台linux主机时,如当前所登录的用户是root的话,当链接另一台主机时也是用root用户登陆时,可以直接使用ssh IP,端口默认即可,如果端口不是默认的情况下,需要使用-p来指定端口。

RAS算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却很困难,因此可以将乘积公开作为加密密钥。

方法二:

ssh -l [远程主机用户名] [远程服务器主机名或IP地址] -p port

选项-l:指定登录名称

注:第一次登录服务器时系统没有保存远程主机的信息,为了确认该主机身份会提示用户是否继续连接,输入yes后登录,这时系统会将远程服务器信息写入用户主目录下的$HOME/.ssh/known_hosts文件中,下次再进行登录时因为保存有该主机信息就不会再提示了。

七、创建免密登录

正常登录的时候需要输入密码,这个时候可以创建免密登录来简化登录的交互过程。

ssh-keygen -t rsa(非对称密钥)

查看密钥的密码:

将公钥推送给对方:

scp命令:

上面的实验中用到了scp的命令,scp(secure copy)是安全性复制的意思。用于在Linux下进行远程拷贝文件的命令,而且scp传输是加密的。

用法:

scp 用户名 root@IP地址:/目录      ##本地文件复制到服务器
scp root@IP地址:/目录 ./         ##复制服务器的文件到本地
scp -r 本地目录 root@IP地址:/目录  ##本地目录复制到服务器

END

猜你喜欢

转载自blog.csdn.net/tu464932199/article/details/125448448