
SSH默认采用密码登录方式,虽然简单易用,但却存在安全风险。当拥有多台服务器时,每个服务器都需要一个复杂的密码,不仅难以记忆,还存在风险。为了解决这个问题,采用SSH密钥登录是一个更加安全便捷的选择。
我目前服务器环境已经迁移到Debian系统,大多数实例都是在Debian上运行。如果没有安装SSH,需要先进行安装。在CentOS系统中使用yum命令安装,而在Debian系统中使用apt命令安装。
接下来,使用ssh-keygen命令在用户目录的~/.ssh文件夹中生成一个4096位的SSH RSA公钥和私钥文件。切换到用户目录并进入.ssh文件夹,会看到id_rsa和id_rsa.pub这两个文件。其中,id_rsa是私钥文件,需要妥善保存;id_rsa.pub是公钥文件,需要将其写入authorized_keys文件中。
为了创建公钥文件,执行以下命令:
1. 创建authorized_keys文件:touch authorized_keys
2. 将公钥写入文件:cat id_rsa.pub >> authorized_keys
3. 查看创建的文件:ls -al ~/.ssh
chmod 600 authorized_keys
chmod 700 ~/.ssh
为了禁止root用户登录,需要在SSH配置文件中进行相应的设置。创建一个新用户并授予sudo权限。然后,编辑SSH配置文件sshd_config,将PermitRootLogin选项设置为no以禁止root用户登录。完成配置后,重启SSH服务使设置生效。这样,即使禁用了root用户登录,仍然可以使用其他具有管理员权限的用户进行登录和操作。
