ssh登录的认证方式有:Password、RSA、DSA、ECC、Password-RSA、Password-DSA、Password-ECC和ALL。
1、Password认证
Password认证是一种基于“用户名+口令”的认证方式。通过AAA为每个SSH用户配置相应的密码,在通过SSH登录时,输入正确的用户名和密码就可以实现登录。
2、RSA认证
RSA认证是一种基于客户端私钥的认证方式。RSA是一种公开密钥加密体系,基于非对称加密算法。RSA密钥也是由公钥和私钥两部分组成,在配置时需要将客户端生成的RSA密钥中的公钥部分拷贝输入至服务器中,服务器用此公钥对数据进行加密。
3、DSA认证
DSA认证是一种类似于RSA的认证方式,DSA认证采用数字签名算法进行加密。
4、ECC认证
ECC认证是一种椭圆曲线算法,与RSA相比,在相同安全性能下密钥长度短、计算量小、处理速度快、存储空间小、带宽要求低。
5、Password-RSA认证
SSH服务器对登录的用户同时进行密码认证和RSA认证,只有当两者同时满足情况下,才能认证通过。
6、Password-DSA认证
SSH服务器对登录的用户同时进行密码认证和DSA认证,只有当两者同时满足情况下,才能认证通过。
7、Password-ECC认证
SSH服务器对登录的用户同时进行密码认证和ECC认证,只有当两者同时满足情况下,才能认证通过。
8、ALL认证
SSH服务器对登录的用户进行公钥认证或密码认证,只要满足其中任何一个,就能认证通过。
SSH结构层次
1、表示层
表示层主要涉及Struts的功能,在这一层,首先通过JSP页面实现交互界面,负责传送用户请求和接收响应,然后Struts根据配置文件将接收到的用户请求委派给相应的Action处理。
2、业务逻辑层
业务层主要涉及Spring的功能,在这一层,管理服务组件负责向Struts配置好的对应Action提供业务模型,该组件的对象数据处理组件完成业务逻辑,并提供事务处理等容器组件以提升系统性能和保证数据的完整性。
3、数据持久层
持久层主要涉及Hibernate的功能,Hibernate实现了数据持久化功能,使得程序员可以通过面向对象地编程思维来 *** 作数据库。在这一层中,依赖于Hibernate的对象化映射和数据库交互,处理Spring中的DAO组件请求的数据,并返回处理结果。
通过互联网到远程主机的安全连接,使用ssh登录创新性的设计和特色帮助用户在复杂的网络环境中享受工作。引入了一个证书颁发机构(CertificateAuthority,简称CA),对信任的服务器颁发服务器证书,对信任的用户颁发用户证书。登录时,用户和服务器不需要提前知道彼此的公钥,只需要交换各自的证书,验证是否可信即可。这边了解到您这边有多台服务器多个域名,可分为有多种不同的情况:
1、要是一台服务器绑定一个域名,那么选择单域名SSL证书即可;
2、要是一台服务器绑定多个域名的话,可以考虑选择多域名SSL证书或通配符SSL证书
多域名SSL证书——顾名思义就是可保护多个不同域名的SSL证书,最多可保护250个域名,后续可增加新的域名。
多域名SSL证书可节省申请SSL证书的时间,节约购买SSL证书的成本,非常适合拥有多个不同域名的用户。
通配符SSL证书——通配符SSL证书又叫泛域名SSL证书,可保护一个域名以及该域名所有下一级域名,不限制下级域名数量,后续添加新的子域无须重新审核和另外付费。
要是实在是有很多的域名搭建多个网站的话,还可以选择多域名通配符SSL证书,在安信证书上可申请到,均支持高强度的加密,可保护多个网站的信息安全。
SSH 是 Linux 下进行远程连接的基本工具。一般情况下我们可以通过 ssh username@xxxxxxxxxxxx 登录远程服务器,如果要管理多台服务器,这样太长了。
可以在家目录的 ssh 中新建config文件,设置别名。
比如我有一台个人的云主机。IP是120163163163,端口是4722(一般都是22,这里为了安全我改为了其他),登录用户名是ubuntu,登录方式是证书登录。
这样执行 ssh cloud 或 ssh alias 就无密码登录云主机了
ssh cloud "df -h"
ssh cloud "df -h; ps;"
比如 sudo 开头的可能需要用户输入密码,需要 TTY。
添加 -t 参数后,ssh 会保持登录状态,直到你退出需要交互的命令。
再举个实际例子:
ssh -t flux sudo -u fueladminprd ssh 1921681100
这句话实际执行了两步:
可以用单引号或双引号开头,然后写上几行命令,最后再用相同的引号来结束。
> 开头的就是输入下一行命令
如果需要在命令中使用引号,可以混合使用单双引号。
在远程服务器执行 ls node ,本地定义变量a,传入到命令中。达到一样的效果。
在下图的命令中为 bash 指定了 -c 参数
本地创建demosh,内容是: ls node
运行 ssh cloud < demosh
通过重定向 stdin,本地的脚本 demosh 在远程服务器上被执行。
修改 demosh 内容为:
执行 ssh cloud 'bash -s'< demosh aa bb cc
bash 就是 $0 第一个参数。
>
可以的。
解释原因:
SSL证书是不限制配置服务器台数的。
SSL证书有效期内可以安装到任何一台服务器。
SSL证书可以同时安装各种服务器与环境。
解决办法:正常安装SSL证书就可以了。
SSH 是(Secure SHell protocol) 的简写,安全外壳协议(SSH)是一种在不安全网络上提供安全远程登录及其它安全网络服务的协议。
OpenSSH 是SSH (Secure SHell)协议的免费开源实现。SSH协议族可以用来进行远程控制,或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程的中的数据,并由此来代替原来的类似服务。
在过去我们使用的rsh和telnet,因为包括登录时的ID和密码数据没有加密就传到网络上,存在安全上的问题。即使在内部网上,也有在因特网上的窃取和篡改等危险性。SSH将包括密码在内的所有数据都已进行了加密处理,可以进行更安全的远程 *** 作。在SSH中,由于协议标准的不同而存在SSH1和SSH2两个不同的版本。SSH2是为了回避SSH1所使用的加密算法的许可证问题而开发的(现在这一许可证问题已经不存在了)。TLES 8中作为安装SSH协议的应用程序采用了开放源码的OpenSSH。OpenSSH与SSH1和SSH2的任何一个协议都能对应,但默认使用SSH2。
SSH 主要有三部分组成:
同时SSH协议框架中还为许多高层的网络安全应用协议提供扩展的支持。它们之间的层次关系可以用如下图来表示:
对于SSH这样以提供安全通讯为目标的协议,其中必不可少的就是一套完备的密钥机制。由于SSH协议是面向互联网网络中主机之间的互访与信息交换,所以主机密钥成为基本的密钥机制。也就是说,SSH协议要求每一个使用本协议的主机都必须至少有一个自己的主机密钥对,服务方通过对客户方主机密钥的认证之后,才能允许其连接请求。一个主机可以使用多个密钥,针对不同的密钥算法而拥有不同的密钥,但是至少有一种是必备的,即通过 DSS算法产生的密钥。关于DSS算法,请参考 FIPS-186 文档SSH协议关于主机密钥认证的管理方案有两种,如下图所示:
每一个主机都必须有自己的主机密钥,密钥可以有多对,每一对主机密钥对包括公开密钥和私有密钥。在实际应用过程中怎样使用这些密钥,并依赖它们来实现安全特性呢?如上图所示,SSH协议框架中提出了两种方案。
在第一种方案中,主机将自己的公用密钥分发给相关的客户机,客户机在访问主机时则使用该主机的公开密钥来加密数据,主机则使用自己的私有密钥来解密数据,从而实现主机密钥认证,确定客户机的可靠身份。在图2(a)中可以看到,用户从主机A上发起 *** 作,去访问,主机B和主机C,此时,A成为客户机,它必须事先配置主机B和主机C的公开密钥,在访问的时候根据主机名来查找相应的公开密钥。对于被访问主机(也就是服务器端)来说则只要保证安全地存储自己的私有密钥就可以了。
在第二种方案中,存在一个密钥认证中心,所有系统中提供服务的主机都将自己的公开密钥提交给认证中心,而任何作为客户机的主机则只要保存一份认证中心的公开密钥就可以了。在这种模式下,客户机在访问服务器主机之前,还必须向密钥认证中心请求认证,认证之后才能够正确地连接到目的主机上。
很显然,第一种方式比较容易实现,但是客户机关于密钥的维护却是个麻烦事,因为每次变更都必须在客户机上有所体现;第二种方式比较完美地解决管理维护问题,然而这样的模式对认证中心的要求很高,在互联网络上要实现这样的集中认证,单单是权威机构的确定就是个大麻烦,有谁能够什么都能说了算呢?但是从长远的发展来看,在企业应用和商业应用领域,采用中心认证的方案是必要的。
另外,SSH协议框架中还允许对主机密钥的一个折中处理,那就是首次访问免认证。首次访问免认证是指,在某客户机第一次访问主机时,主机不检查主机密钥,而向该客户都发放一个公开密钥的拷贝,这样在以后的访问中则必须使用该密钥,否则会被认为非法而拒绝其访问。
在整个通讯过程中,为实现 SSH的安全连接,服务器端与客户端要经历如下五个阶段:
版本号协商阶段,SSH目前包括 SSH1和SSH2两个版本, 双方通过版本协商确定使用的版本
密钥和算法协商阶段,SSH支持多种加密算法, 双方根据本端和对端支持的算法,协商出最终使用的算法
认证阶段,SSH客户端向服务器端发起认证请求, 服务器端对客户端进行认证
会话请求阶段, 认证通过后,客户端向服务器端发送会话请求
交互会话阶段 ,会话请求通过后,服务器端和客户端进行信息的交互
Q1: SSH的版本和区别。
SSH2避免了RSA的专利问题,并修补了CRC的缺陷。SSH2用数字签名算法(DSA)和Diffie-Hellman(DH)算法代替RSA来完成对称密钥的交换,用HMAC来代替CRC。同时SSH2增加了AES和Twofish等对称加密算法。
A1: SSH(Secure SHell)到目前为止有两个不兼容的版本——SSH1和SSH2。SSH1又分为13和15两个版本。SSH1采用DES、3DES、 Blowfish和RC4等对称加密算法保护数据安全传输,而对称加密算法的密钥是通过非对称加密算法(RSA)来完成交换的。SSH1使用循环冗余校验码(CRC)来保证数据的完整性,但是后来发现这种方法有缺陷。
更多内容请参考The SSHv1 Protocol & The SSHv2 Protocol
Q2: 什么是HMAC?
A2: HMAC(Hash Message Authentication Code) ,散列消息鉴别码,基于密钥的Hash算法的认证协议。消息鉴别码实现鉴别的原理是,用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,即MAC,并将其加入到消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证等。
Q3: 什么是X11 forwarding?
A3: sh的X11 forwarding特性可以使X client和X server安全地通讯。使用X11 forwarding后,从X client到X Server方向的数据先被送至ssh server,ssh server利用和ssh client的安全通道转发给ssh client,再由ssh client转发给X server,从X server到X client的数据流同理。这里ssh server和ssh client充当了X client和X server间数据的转发器,由于ssh server和X client、ssh client和X server一般在同一台机器上,它们之间是一种安全的进程间通讯,而ssh server和ssh client间的通讯也是安全的,所以X client和X server间的通讯就是安全的。
Q4: 什么是TTY?
A4: 终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是 Teletype的缩写。Teletype是最早出现的一种终端设备,很象电传打字机,是由Teletype公司生产的。设备名放在特殊文件目录/dev/下。
Q5: 简单描述下SSH运行的过程?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)