十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在上一篇文章 《ssh密钥对登录安全吗?原理篇》 了解了ssh密钥对登录原理后,接下去就是实践的问题了,这是大部分人更关心的知识,其中也有一些隐藏的陷阱。
尖草坪网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联建站于2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。
首先 要生成一对密钥对,ssh-keygen 是 ssh 工具集中的一个工具,用于生成密钥对:
-b 是密钥对的长度,越长越安全,但运算速度就会相应变慢,在这个例子中生成的是一个 RSA 密钥对,其中 id_rsa 是公钥(也可以自定义名字),公钥也叫做 identity 文件,需要放到 ssh 服务器 ~/.ssh/authorized_keys 文件中(其中 ~ 符号表示想要以那个属主用户的身份(比如 root 用户)登录ssh服务器),用于证明这个密钥对拥有访问 ssh 服务器的权限。
在 ssh 登录的时候,ssh 客户端需要读取公钥文件,但不会传输。
那么 passphrase 是什么呢?是一个口令,用于保护密钥对,有了口令,即使密钥对文件泄漏了,由于攻击者没有口令解密,那么密钥对仍然是安全的。
如果图省事,口令可以为空,如果不为空,则ssh登录的时候需要输入口令。
运行完成后,生成的密钥对默认会保存到客户端属主目录 ~/.ssh 下,为什么生成在这个目录呢?因为登录验证的时候 ssh 客户端会读取属主目录下的公钥文件。
接下去查看生成的密钥对文件,运行如下命令:
id_rsa.pub 文件就是公钥,id_rsa 是私钥,需要注意的就是这二个文件的权限问题,私钥权限必须是 600,严格限制权限,而 id_rsa 权限可以适当放大,对于客户端,~/.ssh 的目录权限不会影响 ssh 登录,但从安全的角度看,请保持 700 权限。
公钥文件上传到ssh服务器后,其实就可以删除了,因为私钥包含公钥。
接下去 就是要将公钥放到 ssh 服务器上,一般有三种方法:
1:ssh-copy-id
ssh-copy-id 工具专门用于将公钥上传到ssh服务器的authorized_keys文件中,这个工具通过口令登录的方式上传公钥,运行很简单:
ssh-copy-id 默认会上传 ~/.ssh/ 目录下公钥文件(即 identity 文件 ),ssh服务器上可能有多个用户,那上传到那个用户的.ssh目录下呢?这根据 username 而定,比如 /home/username 目录。
如果 identity 文件不在 ~/.ssh 目录下或者名称不是默认的 id_rsa ,也可以通过 -i 参数指定文件,比如:
如果ssh服务器上的 ssh 打开 StrictModes 严格模式,这个工具会更改ssh服务上的 ~/.ssh目录, ~/.ssh/authorized_keys 文件的权限。
重点要注意的是,ssh服务器用户的.ssh目录必须是700 权限,authorized_keys 文件也必须是 700 权限,否则 ssh 登录验证会失败,下面会重点描述这个问题。
2:手动上传公钥
如果ssh服务器关闭了口令登录方式,就必须使用这种方式了,重点要注意权限问题。
首先拷贝 ~/.ssh/id_rsa.pub 内容,然后登录到ssh服务器上,再将剪贴板的内容粘帖到 ~/.ssh/uthorized_keys 文件中(如果不存在就创建对应的目录和文件)
最后运行下列命令:
尽量保证目录和文件只有对应的ssh用户才能访问,否则ssh登录会失败,原因就是为了保障安全,你总不希望自己的公钥被ssh服务器上的其他用户看到把?
3:使用ssh口令登录方式手动上传公钥
如果机器上没有 ssh-copy-id 工具(Windows 10 原生 ssh 客户端就没有),可采用这种方式,其实也很简单,就一条命令,但能让你了解详细的工作过程,所以比较推荐这种方式:
最后 就是 ssh 登录服务器,验证自己的公钥是否成功上传了,执行下列命令:
当然也可以指定私钥文件,比如 :
如果登录的时候还是让你输入口令,则很有可能是ssh服务器上的 ~/.ssh/authorized_keys 权限有问题,请检查下。
如果还是遇到登录失败的问题,可以在ssh服务器上查看日志,比如:
相关文章:
常用密钥,加密解密用同一个Key,安全性,防伪性,鉴权性都不好。
公钥私钥解决了以上的问题。
公钥和私钥或者称非对称密钥和对称密钥是密码体制的两种方式。私钥体制指加解密的密钥相同或容易推出,因此加解密的密钥都是保密的。公钥体制指加解密密钥彼此无法推出,公钥公开,私钥保密。
由上定义可知,公钥私钥是两种不同的密码体制,而不是两个不同的应用或两个不同的密钥。因此在加密和签名应用中,公钥私钥均可以使用。
其支持者通常都专注于其卓越的性价比,但是其成功的秘密却是广为人知的一些实施技巧:iSCSI使用标准的TCP/IP网络连接来传输“块级”数据,所以即使几乎没有存储经验的网络管理员也感到十分轻松。
低级配置带来的灾难
假设你为一家中小型企业工作,并且有几台Windows服务器,你想将其连接到iSCSI SAN上。这些服务器都是全新的,并拥有四个板载的1Gbps网卡,但是仅有一个网卡连接到了一台交换机,一台低端的不可管理的的千兆交换机。
以这种方式连接iSCSI存储器存在着几个问题。你将没有交换机或网卡的冗余,SAN上没有负载均衡,也没有需要用来优化iSCSI通信流(通过交换机的)的特性,而且,最糟的可能是,存储器将会与前端的客户端通信争夺带宽。
正确建立iSCSI
在上面的情形中,缺失的元素是很明显的:一台象样的交换机。一台优良的交换机是iSCSI SAN的关键部分。确实,任何千兆交换机都可用于iSCSI,但是采用低廉的不可管理的交换机会使你遗漏一些重要的特性。
随着5G、AI、区块链、大数据等新一代数字经济基础设施的大力发展,推动传统行业不断向数字化转型,一切生产力与生产关系都将向数字化转变。在这个转变过程中,要想实现数据的处理及运转,都离不开算力,可以说算力是经济发展中的基础保障。作为专注于大数据领域的亿万克就在不断布局,加大产品算力,更好的为市场发展打破行业创新壁垒提供强大的推动力。
【感兴趣请点击此处,了解一下。 】
在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。
公钥用来给数据加密,用公钥加密的数据只能使用私钥解密
用来解密公钥加密的数据。
对需要传输的文本,做一个HASH计算,一般采用SHA1,SHA2来获得
使用私钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。
数据接收端,拿到传输文本,但是需要确认该文本是否就是发送发出的内容,中途是否曾经被篡改。因此拿自己持有的公钥对签名进行解密(密钥对中的一种密钥加密的数据必定能使用另一种密钥解密。),得到了文本的摘要,然后使用与发送方同样的HASH算法计算摘要值,再与解密得到的摘要做对比,发现二者完全一致,则说明文本没有被篡改过。
是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。
公钥登录是为了解决每次登录服务器都要输入密码的问题,流行使用RSA加密方案,主要流程包含:
1、客户端生成RSA公钥和私钥
2、客户端将自己的公钥存放到服务器
3、客户端请求连接服务器,服务器将一个随机字符串加密后发送给客户端
4、客户端根据自己的私钥解密这个随机字符串之后再发送给服务器
5、服务器接受到字符串之后用公钥解密,如果正确就让客户端登录,否则拒绝。这样就不用使用密码了。
进入用户目录下.ssh目录:
id_rsa:私钥文件
id_rsa.pub:公钥文件
authorized_keys: 保存其他公钥的的文件
known_hosts: 已经建立过连接的服务器信息,可以清空。
1.执行命令:
此时会重新生成id_rsa私钥文件和id_rsa.pub公钥文件
用户将公钥发送给其他服务器,其他服务器将接受的公钥保存在authorized_keys里面。持有私钥的用户就可以登录服务器(authorized_keys存放自己的公钥,用户便可以使用私钥从其他的地方登录服务器)。
2.将公钥导入到vps
3.修改SSHD的配置文件/etc/ssh/sshd_config
4.重启SSH后进行测试