如何保护我的 SSH 访问?

bre*_*ine 0 security vps ssh

我是那些爬上梯子跳到高处跳下的人之一,然后意识到他不会游泳。

所以我有一个 VPS,但我不知道如何管理它。我知道要做的第一件事就是保护它,到目前为止我发现的朝着这个方向迈出的第一个具体步骤是在 moshen 的评论中

此外,您应该尽快保护您的 SSH 访问。我建议更改默认端口,使用基于密钥的身份验证并禁用密码身份验证和 root 登录(基本上创建一个标准用户帐户供您登录)

到目前为止,我所知道的就是使用我的 VPS 提供商的 Web 界面打开一个具有 root 访问权限的控制台。那么我该如何听从 moshen 的建议呢?

Log*_*eck 7

为了保护您的 ssh,您应该执行以下操作:

1) 确保您有一个具有 sudo 访问权限和公钥的用户,请按照以下步骤操作:
a) 通过发出以下命令创建用户:

useradd sudo_user
Run Code Online (Sandbox Code Playgroud)

b) 以该用户身份登录并创建公钥/私钥集,然后设置authorized_keys:

su - sudo_user
ssh-keygen -t rsa
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
exit
Run Code Online (Sandbox Code Playgroud)

c) 从 /home/sudo_user/.ssh/id_rsa 获取您的私钥,您将进一步使用它来登录服务器:

cat /home/sudo_user/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

d) 为您的用户设置 sudo 访问权限:

echo "sudo_user  ALL=(ALL)       NOPASSWD: ALL" >> /etc/sudoers
Run Code Online (Sandbox Code Playgroud)

2) 编辑您的 /etc/ssh/sshd_config 配置并进行下一个更改:
a) 通过确保下一行显示禁用 root 访问权限:

PermitRootLogin no
Run Code Online (Sandbox Code Playgroud)

b) 通过设置禁用密码验证:

PasswordAuthentication no
Run Code Online (Sandbox Code Playgroud)

PubkeyAuthentication yes
Run Code Online (Sandbox Code Playgroud)

c) 更改 ssh 的端口,首先确保新端口在防火墙中打开:

Port 12345
Run Code Online (Sandbox Code Playgroud)

您可以将其更改为您喜欢的任何内容。d) 通过发出以下命令重新加载 ssh:

service sshd reload
Run Code Online (Sandbox Code Playgroud)

或者

service ssh reload
Run Code Online (Sandbox Code Playgroud)