【星海随笔】ssh全解

发现 ssh 把我卡了很久,自己的文档也没有专门写 ssh 的,这一个文档会持续专精更新 ssh 相关的技术文档。

有些企业是全 BMC 管理平台。没有 ssh 密码登录权限

sudo apt-get install openssh-server

检查SSH配置文件(通常是 /etc/ssh/sshd_config):
确保PermitRootLogin设置不是no,除非你想禁止root登录。
检查PasswordAuthentication是否设置为yes,如果设置为no,将不允许密码认证。
如果需要,可以设置AllowUsers或AllowGroups来限制哪些用户或用户组可以登录。

cat /etc/group

Windows 如何远程连接到不同的 Linux 设备

1安装git

https://git-scm.com/downloads

2安装完成后,右击桌面,点击打开git

输入cd 进入根目录,然后 cd .ssh 进入ssh配置文件中
在这里插入图片描述

输入

ssh-keygen

生成了一个本地编码公钥。
xxx.pub

3查看pub文件,并连接

将之前生成的这个文件里的内容复制到目标端的(linux) authorized_keys 文件中

4远程登录

最后

ssh <user>@<ip>

如果失败,需要检查目标端(linux)的 /etc/ssh/ sshd_config 配置文件

检查SSH服务器配置:
如果你有权限访问SSH服务器,检查/etc/ssh/sshd_config文件,确保没有禁用公钥认证(PubkeyAuthentication yes)
并且AuthorizedKeysFile指向了正确的文件。
确保/.ssh目录和authorized_keys文件的权限设置正确。通常,/.ssh目录的权限应该是700,而authorized_keys文件的权限应该是600。


ssh-keygen 说明

私钥文件

作用:私钥文件是安全的核心,它用于解密由公钥加密的数据,以及在SSH连接中验证用户的身份。私钥必须严格保密,不应泄露给任何人或未经授权的实体。
文件名:默认情况下,私钥文件名为id_rsa(如果使用RSA算法),但可以通过ssh-keygen命令的-f选项指定其他文件名。
存储位置:私钥文件默认保存在用户主目录下的.ssh目录中。
权限设置:为了安全起见,私钥文件的权限应设置为仅允许所有者读写(通常是600)。

公钥文件

作用:公钥文件用于加密数据,以便只有拥有相应私钥的用户才能解密。在SSH连接中,公钥被放置在远程服务器的~/.ssh/authorized_keys文件中,用于验证尝试连接的用户是否拥有与公钥配对的私钥。
文件名:默认情况下,公钥文件名为id_rsa.pub(如果使用RSA算法),但同样可以通过ssh-keygen命令的-f选项指定其他文件名,并添加.pub后缀以表示其为公钥文件。
存储位置:公钥文件默认也保存在用户主目录下的.ssh目录中,但通常会将其内容复制到远程服务器的~/.ssh/authorized_keys文件中以启用免密登录。
权限设置:虽然公钥文件本身不包含敏感信息,但出于安全考虑,其权限也应设置为仅允许所有者读写(通常是644)。然而,在将公钥内容添加到远程服务器的~/.ssh/authorized_keys文件时,该文件的权限应更为严格(通常是600),以确保只有授权用户才能访问。


交互流程

一、密钥生成与交换

密钥生成:
客户端(Client)和服务器(Server)各自生成一对密钥,即公钥(Public Key)和私钥(Private Key)。公钥可以公开,而私钥必须保密。
密钥生成通常使用RSA等非对称加密算法,确保加密和解密过程的安全性。

公钥交换:
在首次建立SSH连接时,服务器会将自己的公钥发送给客户端。
客户端验证服务器的公钥是否可信(通常通过比对公钥的指纹或将其保存在known_hosts文件中)。
客户端也将自己的公钥发送给服务器,服务器将其保存在authorized_keys文件中,用于后续的免密登录验证。

二、认证过程

客户端认证:
客户端使用服务器的公钥加密自己的登录信息(如用户名和密码),然后发送给服务器。
服务器使用自己的私钥解密登录信息,验证客户端的身份。

免密登录(基于公钥的认证):
客户端请求登录时,服务器会生成一个随机字符串(通常称为挑战码),并使用客户端的公钥加密后发送给客户端。
客户端使用自己的私钥解密挑战码,然后将解密后的挑战码与某个会话密钥一起使用哈希算法生成一个摘要(Digest)。
客户端将摘要发送给服务器,服务器使用相同的算法和会话密钥生成摘要,并与客户端发送的摘要进行比对。
如果摘要一致,则认证成功,服务器允许客户端登录,无需再输入密码。

三、会话建立与数据传输

会话建立:
认证成功后,客户端和服务器之间建立SSH会话。
会话过程中,双方协商使用的加密算法、消息认证码和压缩算法等。

数据传输:
在会话期间,客户端和服务器之间传输的所有数据都会使用之前协商的加密算法进行加密和解密。
加密过程确保数据的机密性和完整性,防止数据在传输过程中被窃取或篡改。

四、安全性与风险

安全性:SSH通过非对称加密和密钥交换技术确保了数据传输的机密性和完整性,同时提供了强大的身份认证机制。

风险:尽管SSH具有很高的安全性,但仍存在中间人攻击等风险。中间人攻击者可以截获客户端和服务器之间的通信,并冒充服务器向客户端发送伪造的公钥。为了防范这种风险,客户端应始终验证服务器的公钥是否可信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值