到目前为止,我知道 ssh 就像网络中的加密。但我想弄清楚它是什么以及我们为什么要使用它。以及为什么要为远程客户操作系统访问它。请举一个例子。
答案1
使用 SSH 登录远程计算机被认为是非常安全的,因为客户端和服务器之间的所有通信都使用公钥和私钥加密。此外,客户端和服务器还将使用数字签名来相互识别,这可以在服务器或客户端身份突然发生变化时发出警告。
例如,如果存在中间人攻击,您将看到类似这样的内容,并且连接立即终止:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:p4ZGs+YjsBAw26tn2a+HPkga1dPWWAWX+NEm4Cv4I9s.
Please contact your system administrator.
Add correct host key in /Users/dalanz/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/dalanz/.ssh/known_hosts:9
ECDSA host key for 192.168.56.101 has changed and you have requested strict checking.
Host key verification failed.
这可以显示当有人拦截从服务器发送的数据包并用他自己的数据包替换时。
即使中间人攻击确实发生,他们仍然无法读取数据,因为数据是用你的公钥加密的,需要你的私钥才能解密。所以数据几乎没用。
虽然没有一个系统是完美的,并且有可能欺骗机器之间的连接,但这种措施可能会减慢某人的速度。
禁用 SSH 密码验证和 root 登录非常重要。
最佳实践是不允许任何用户以普通root
用户身份通过 SSH 进入。相反,以普通用户(在sudo
组中)的身份进入sudo
。
CentOS 答案https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s2-ssh-intro-why.html