当前位置: 首页 > news >正文

【Linux】第十章 配置和保护SSH

1. 简单说下ssh如何实现用户的免密登录?

(1)生成公钥和私钥:使用 ssh-keygen -t rsa 命令,在客户端(即你登录的机器)上生成一对密钥——公钥(~/.ssh/id_rsa.pub私钥(~/.ssh/id_rsa。公钥是公开的,可以发送给别人;私钥是保密的,只有你自己保管。

(2)将公钥发送到远程服务器:使用 ssh-copy-id user@remote_host 命令,将你的公钥复制到远程服务器的一个特定文件里(~/.ssh/authorized_keys),这样服务器就知道你是谁,可以信任你。

(3)使用私钥认证:当你从客户端第一次连接到远程服务器时,使用 SSH 协议的客户端会使用你的 私钥 来进行身份验证。服务器会用 公钥 来验证你是否是授权用户匹配成功就可以无密码登录。

第一次连接时,SSH协议会从远程服务器获取并保存其公钥到客户端本地文件 ~/.ssh/known_hosts ,用于记录你已经连接过的远程服务器的公钥,这个公钥不是来认证你的身份,而是用来验证你连接的远程服务器是否是合法的,防止中间人攻击或服务器伪装。

当你下次连接到同一个服务器时,SSH 客户端会从 ~/.ssh/known_hosts  文件中查找该服务器的公钥。如果公钥匹配,连接继续进行;如果不匹配,SSH 会提示你警告,因为这可能意味着服务器的公钥发生了变化,可能是被篡改或存在中间人攻击。

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

公钥 是公开的,可以自由地与任何人分享。它用于 加密信息验证身份。在 SSH 中,公钥通常存放在服务器上,用于验证客户端的身份。客户端本地一般存放在 ~/.ssh/id_rsa.pub 中,远程服务器一般放在 ~/.ssh/authorized_keys 中。

私钥 是保密的,只能由它的拥有者保管。它用于 解密信息签名。在 SSH 中,私钥存放在客户端本地,用于证明客户端的身份。私钥存放在本地客户端的安全位置,通常位于 ~/.ssh/id_rsa 中。

私钥只能由所有者读取,为 600 权限。公钥则可被任何人读取,通常设置为 644 权限

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

编辑 /etc/ssh/sshd_config ,设置 PermitRootLogin no  。

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

编辑 /etc/ssh/sshd_config ,设置 PasswordAuthentication no 。

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

修改配置后,重新加载或重新启动 SSH 服务:systemctl reload sshd 或 systemctl restart sshd 。

相关文章:

  • 探索Adobe软件的冷门技巧
  • Spring DI 详解
  • @Autowird 注解与存在多个相同类型对象的解方案
  • 【英语语法】基本句型
  • 大模型如何改变我们的日常生活
  • vue3 el-dialog新增弹窗,不希望一进去就校验名称没有填写
  • LeetCode hot 100—单词搜索
  • 泛微E10自定义“批准”按钮点击事件 —— 拦截逻辑实战分享
  • Agent2Agent(A2A)开放协议:构建智能代理协同生态的标准架构
  • 动态规划 -- 简单多状态dp,打家劫舍问题
  • 身份认证C#集成方案-数字时代身份证实名认证利器
  • 大模型时代的机遇与挑战
  • iso17025证书申请方法?iso17025认证意义
  • 数据库子查询
  • C++实习工程师简历模板
  • 【口腔粘膜鳞状细胞癌】文献阅读3
  • 【深度学习】计算机视觉(15)——ViT理解与应用
  • pidstat指令分析
  • 《卷积神经网络(CNN):深度学习中的图像识别利器》
  • 解决fastJson JSON.parseArray方法 非法字符问题
  • 黄永年:说狄仁杰的奏毁淫祠
  • 天津外国语大学原校长修刚突发疾病去世,享年68岁
  • 持续更新丨伊朗港口爆炸事件已致561人受伤
  • 伤者升至80人,伊朗港口爆炸源头或为“危险品和化学品仓库”
  • 新闻1+1丨应对外部冲击,中央政治局会议释放哪些信号?
  • 南国置业:控股股东电建地产拟受让公司持有的房地产开发业务等相关资产和负债