什么是SSH,它是如何工作的?

时间:2015-07-05 00:19:27

标签: linux security login ssh terminal

我正在设置数字海洋水滴。我对网络和系统管理员任务的经验很少。

有关设置此Droplet的所有文档和教程都强烈建议我建立SSH连接。通过谷歌搜索,我得到了很多关于SSH的定义和视频,但我似乎无法概念化它是如何工作的。

我甚至没有任何问题地遵循了一些教程的指示,所以显然我甚至在用其他水滴之前完成了这项工作。但是,每当我使用PuTTY或WinSCP登录我的Droplet时,我仍然需要提供用户名和密码(即使保存了密码,我也需要输入密码才能保存)。

我获得的其他信息:

- 当我逐步完成这个过程时,我注意到linux仍然会要求我创建一个密码短语。但是,我所做的大量阅读似乎表明我不需要出于某种原因。

- 有一个公钥和私钥。我似乎无法理解每个人的用途,或者有什么不同。

- 我没有对家用电脑做任何事情。 SSH连接是否验证我确实通过家用计算机登录了我的服务器?如果事实确实如此,如果我根本没有提供有关家用电脑的任何信息,这个过程如何知道我正在使用家用电脑登录我的服务器? (一切都是通过我的服务器远程通过PuTTY完成的。)

- 根据我阅读的很多内容,在设置SSH之后,您应该禁用root用户访问权限。我只是没有看到原因。

我真的不明白在创建私钥和公钥时我做的是什么。使用WinSCP和PuTTY登录我的服务器时,我仍然需要提供用户名和密码。难道我做错了什么?参考SSH;我在做什么?我为什么要这样做?尽管我在登录时仍需提供密码,但我是否正确行事?

如果可能的话,请向"解释这个问题给5岁的孩子"方法

1 个答案:

答案 0 :(得分:2)

PuTTY是一个SSH客户端,因此您已经在不知情的情况下通过SSH登录服务器。公钥 - 私钥只是登录的另一种方式(除了密码登录)。它的工作方式是在家用计算机上生成私钥,然后为服务器提供公钥。然后,您可以使用私钥自动登录,而不是使用密码登录(需要您输入密码)。私钥登录在完成后也被认为比基于密码的登录安全得多。

已经有很多资源可以解释公私密钥加密的工作原理,所以这是我在Reddit上找到的资源:

  

另一种看待它的方法是熟悉的盒子类比。想象一下,你想向美国各地的朋友发送一个公文包信息,但需要将其锁定,这样盗贼才能看到它。显然你不能只把你自己的锁放在那里并发送它,因为你的朋友没有钥匙锁。

     

盒子类比提供了一个解决方案。你将自己的锁放在包上并发送给你的朋友。在那里,你的朋友也把他自己的锁放回去。然后用钥匙解锁你自己的锁,这意味着唯一的锁是你朋友的锁。将其发回,他们可以轻松解锁并查看信息。这是万无一失的,因为小偷需要知道两个锁的钥匙才能打开公文包。

     

计算使用类似的模型但不是锁和钥匙它使用一个主锁,可以用你和你的朋友各自知道的三个键,一个公钥和两个私钥的组合打开。它还考虑了素数和模运算的性质。在研究CS时,我发现this video在理解锁定和解锁的数字化过程如何工作方面有很大帮助。

来源:
https://www.reddit.com/r/explainlikeimfive/comments/1kocba/eli5_rsa_algorithm_and_publicprivate_keys/cbr0l24

此外,如果你想让公共 - 私人密钥登录与PuTTY一起工作,这里有一个关于它的教程(它甚至特定于digitalocean!):
https://www.digitalocean.com/community/tutorials/how-to-create-ssh-keys-with-putty-to-connect-to-a-vps