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

答:

    在需要登陆的客户端生成一对密钥(公钥+私钥),把公钥追加到服务器该用户的 ~/.ssh/authorized_keys 文件中。

      客户端发起 SSH 连接请求后,服务器生成随机字符串,用客户端的公钥加密后发送给客户端,客户端用本地私钥解密字符串,将结果发回服务器,服务器验证结果正确后,允许登录。


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

答:

公钥:可公开,用于加密或验证签名,由私钥生成,但无法反向推到私钥

私钥:必须保密,用于解密或生成数字签名,唯一能解开对应公钥加密的数据

客户端私钥默认存放在~/.ssh/id_rsa,公钥为~/.ssh/id_rsa.pub;

服务器端公钥存放在目标用户的~/.ssh/authorized_keys文件中。


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

答:

先登录到root用户,编辑 /etc/ssh/sshd_config,设置PermitRootLogin no,再重启systemctl restart sshd

默认密码、密钥的登录都不允许:不安全,容易被破解


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

答:

修改sshd配置文件/etc/ssh/sshd_config,将PasswordAuthentication设置为no,保存后重启sshd服务生效,强制使用密钥登录。


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

答:

执行systemctl restart sshd命令重启sshd服务,使配置修改生效;

也可使用systemctl reload sshd重新加载配置文件(部分修改需重启服务)。

sshd默认端口号:22(不是唯一的,可以配置的

生产上sshd端口号不是22,所有的web服务器端口号都不是80:更安全仅有内部人员知道


Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐