【RH124 问答题】第 10 章 配置和保护 SSH

目录

  • [ssh 如何实现用户的免密登录?](#ssh 如何实现用户的免密登录?)
  • [SSH 的公钥和私钥有什么区别?它们分别存放在哪里?](#SSH 的公钥和私钥有什么区别?它们分别存放在哪里?)
  • [如何设置禁止直接远程登录 root 账户?](#如何设置禁止直接远程登录 root 账户?)
  • 如何设置禁止使用基于密码的身份验证来进行远程登录?
  • [在修改 sshd 配置文件后,需要执行什么操作让修改生效?](#在修改 sshd 配置文件后,需要执行什么操作让修改生效?)

ssh 如何实现用户的免密登录?

ssh使用基于私钥-公钥的身份验证。也就是在客户端使用ssh-keygen命令创建用户的公钥私钥,默认分别保存在~/.ssh/id_rsa.pub~/.ssh/id_rsa文件中。公钥可以公开,私钥必须保密。

然后使用ssh-copy-id user@server-ip命令将用户的公钥复制到服务器中,服务器会创建该用户的~/.ssh/authorized_keys 文件。

这样操作以后,在使用ssh user@server-ip登录的时候,告诉服务器用户名 ,服务器从该用户的 ~/.ssh/authorized_keys 文件中找到对应的公钥,用它加密一段随机挑战码 发给客户端。 客户端用本地私钥解密这段挑战码,并把结果返回服务器。服务器验证结果正确后,确认客户端拥有私钥,允许登录,从而实现免密认证。

通过这种方式,用户无需每次输入密码,既提高了效率,又增强了系统的安全性。


SSH 的公钥和私钥有什么区别?它们分别存放在哪里?

公钥是公开的,通常被放置在目标服务器上,用于身份验证。别人可以用这个公钥加密信息验证你发送的签名,但无法反推出你的身份或解密数据。

私钥必须保密,保存在客户端本地,用来解密通过公钥加密的信息对数据进行签名。拥有私钥的人就拥有了登录对应服务器的权限,因此必须妥善保护,不能泄露。

公钥和私钥通常存放在本地用户主目录下的 ~/.ssh/ 目录中,

私钥存放在~/.ssh/id_rsa,公钥存放在~/.ssh/id_rsa.pub


如何设置禁止直接远程登录 root 账户?

将sshd守护进程的主配置文件/etc/ssh/sshd_config里面的 PermitRootLogin yes 修改为 PermitRootLogin no

然后重启SSH服务使修改生效:systemctl restart sshd


如何设置禁止使用基于密码的身份验证来进行远程登录?

将sshd守护进程的主配置文件/etc/ssh/sshd_config里面的 PasswordAuthentication 参数设置为no

然后重启 SSH 服务使修改生效:systemctl restart sshd


在修改 sshd 配置文件后,需要执行什么操作让修改生效?

重新加载服务或重启服务。systemctl reload sshd systemctl restart sshd