SSH登录详解

SSH登录详解

1.什么是SSH登录
SSH是一种网络协议,用于计算机之间的加密登录。
相比传统的账户密码登录,SSH提供了一种更便捷安全的登录方式。

2.SSH登录流程
登录操作如下

ssh user@host

SSH之所以能保证安全,是因为它采用了公钥加密。
整个流程如下:
(1)远程主机收到用户的登录请求,将自己的公钥发给用户
(2)用户使用这个公钥,将登录密码加密后,发送给远程主机
(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录

3.中间人攻击
SSH登录本身是安全的,问题在于,如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,
那么用户很难辨别真伪。因为不像https,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。

攻击者插在用户和远程主机之间,用伪造公钥,获取到用户的登录面后,再用这个密码登录远程主机,那么SSH的安全机制就荡然无存了,
这就是著名的“中间人攻击”

4.口令登录-公钥加密(用户端),私钥解密(远程主机)
如上图所示,第一次登录时,会提示用户

The authenticity of host '121.43.230.217 (121.43.230.217)' can't be established.
ECDSA key fingerprint is SHA256:NfXOYhYDaY7cs57XoMqAS+5D+rG8mKTumqyo+8SCO9o.
Are you sure you want to continue connecting (yes/no)?

意思是无法验证用户的公钥,是否正确,询问用户是否要继续。
ECDSA key给出了远程主机公钥的SHA256编码过的值,一般在远程主机的网站会告示公钥的值,
用户可以将这个公钥和网站上的公钥进行比对,正确则表明是远程主机。
输入yes之后,系统会将公钥加入到已知的主机列表,如下所示,已知列表中的主机,下次不会再询问。

Warning: Permanently added '121.43.230.217' (ECDSA) to the list of known hosts.

5.公钥登录-私钥加密(用户端),公钥解密(远程主机)
使用密码登录,每次都必须输入密码,非常麻烦,好在SSH还提供了公钥登录,可以省去输入密码的步骤。
公钥登录的流程如下:
用户将自己的公钥放在远程主机上,登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。
远程主机用实现储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

这种方式要求用户提供自己的公钥,如果没有,可以使用ssh-keygen生成一个:

ssh-keygen

运行之后,会在/root/.ssh/目录下,分别生成公钥和私钥:id_rsa.pub和id_rsa
输入以下命令,将公钥传送到远程主机,公钥会添加到远程主机/root/.ssh/authorized_keys文件中,公钥登录的设置就完成了。

ssh-copy-id user@host
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Ubuntu SSH配置详解 SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程访问。Ubuntu是一种流行的Linux操作系统,下面是关于如何配置Ubuntu SSH的详细解释。 1. 安装OpenSSH服务器:在Ubuntu上使用SSH,首先需要安装OpenSSH服务器。使用以下命令在终端窗口中进行安装: sudo apt-get install openssh-server 2. 配置SSH服务器:安装完成后,可以通过编辑SSH配置文件进行服务器配置。打开终端窗口输入以下命令来编辑配置文件: sudo nano /etc/ssh/sshd_config 3. 修改端口号:默认情况下,SSH服务器在22端口上监听连接请求。为了增加安全性,我们可以修改该端口号。在配置文件中找到"Port"行,将其修改为所需的端口号。 4. 配置允许的用户:默认情况下,SSH服务器允许所有用户进行远程连接。如果需要仅允许特定用户连接,可以使用"AllowUsers"命令将其限制为特定的用户。通过在配置文件中添加以下行来指定允许连接的用户名: AllowUsers username1 username2 5. 禁用root用户登录:为了提高安全性,可以禁用root用户通过SSH进行远程登录。在配置文件中找到"PermitRootLogin"行,并将其修改为"no"。 6. 重启SSH服务器:完成配置后,需要重新启动SSH服务器以使更改生效。使用以下命令重启SSH服务器: sudo systemctl restart ssh 配置完成后,就可以使用远程终端连接到Ubuntu系统了。在其他计算机上打开终端窗口,使用以下命令连接到Ubuntu系统: ssh username@ip_address -p port_number 以上是关于如何在Ubuntu上配置SSH的详细解释。通过修改SSH服务器的配置文件,可以增加系统的安全性,并控制允许远程连接的用户。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值