今天,小编将接着昨天的分享,给大家讲解vps搭建连接到安全外壳和为SSH使用身份验证密钥的教程。
一、连接到安全外壳
假设现在有一个运行新安装的Linux操作系统和Virtualmin的远程服务器,并且您正在从本地 Windows PC 配置它,管理它的最佳方法是使用 PuTTY 连接到安全外壳 ( SSH )命令行和 WinSCP 用于文件传输。这通常比我们上面使用的托管公司控制台或Webmin文件管理器更快、更方便——例如,它允许剪切和粘贴命令。在您的 Windows PC 上安装并运行 PuTTY 并将您的 VPS 的 IP 地址(托管公司会告诉您)放在“主机名(或 IP 地址)”的位置,将端口设置为 22 并选择连接类型:SSH . 输入您在上面选择的管理员用户名和密码(或由您的主机提供给您),然后单击打开按钮。
第一次连接到新服务器时,您会看到服务器的主机密钥未缓存的警告。单击“是”保存密钥并连接。出现提示时输入您的管理员用户名和密码。
重新生成主机密钥(如有必要)
如果您的操作系统是从标准托管公司映像安装的,那么根 SSH 密钥可能与它们托管的所有其他 VPS 相同,这是一个重大的安全风险。如果有疑问,您可以随时使用以下命令重新生成密钥(这不会中断现有的 SSH 会话):
sudo /bin/rm -v /etc/ssh/ssh_host_*
sudo dpkg-reconfigure openssh-server
二、为 SSH 使用身份验证密钥
身份验证密钥比密码安全得多,默认情况下,在Ubuntu 上,这是以 root 用户身份登录的唯一方法,也是执行无人值守备份的唯一方法,因此值得学习使用它们。
首先,使用Windows 上的PuTTYgen等程序为自己生成一个公钥/私钥对 。默认的 RSA 密钥类型不再被认为是安全的 - 我建议 使用曲线Ed25519 (255 bits)选择密钥类型EdDSA。使用密码保护私钥是一种很好的做法,这应该是令人难忘的。将私钥复制到计算机上管理员或备份进程将用于通过 SSH 登录的位置,或复制到 U 盘。
然后将公钥从 PuTTYgen 的顶部窗口复制到您的 VPS - 将其粘贴到 用户主文件夹中名为 .ssh的文件夹内的一个名为authorized_keys的文件中。此文件必须仅对您(管理员用户)可见。您可以使用以下命令来创建具有必要权限的文件夹和文件:
cd ~
mkdir .ssh
chmod 0700 .ssh
cd .ssh
sudo nano authorized_keys
[右键单击将您的公钥粘贴到一行并使用 Ctrl+O 然后 Ctrl+X 保存]
chmod 0600 authorized_keys
不要向任何人透露私钥!要使用PuTTY连接到我们的服务器,请在 PuTTY 的Connection > SSH > Auth configuration 屏幕中输入带有 .ppk 扩展名的私钥文件的地址。如果它正常工作,则在尝试连接时不应提示您输入密码,尽管您会在第一次收到有关成为无法识别主机的警告,您可以放心地忽略它。
要使用WinSCP连接到我们的服务器并以图形方式管理文件,请单击 New Session,选择File Protocol: SCP,将您服务器的 IP 地址放入 Host name,输入您的用户名,将密码字段留空并输入地址在Advanced > SSH > Authentication > Private key file中扩展名为 .ppk 的 私钥文件。
如果我们有很多文件要为不同的用户管理,有时以用户“root”身份连接会更方便,方法是向文件/root/.ssh/authorized_keys添加密钥。如果您这样做,请非常小心不要损坏基本系统文件,并确保您更改的任何文件都归正确的用户和组所有,而不是由 root 拥有。这很容易忘记,并可能导致各种奇怪的症状。
确定无需密码即可成功登录后,您可以转到Webmin > 服务器 > SSH 服务器 > 身份验证并设置“允许通过密码进行身份验证?” 为“否”。
请注意,一些管理员将 SSH 服务器侦听的端口从 22 更改为更高的端口,以减少黑客攻击和相关的日志文件条目。我不再这样做,因为它只是一个临时解决方案,最终根本不会提高安全性,而且实际上会使情况变得更糟——无论您使用哪个端口,端口扫描器最终都会找到。但是,我确实建议设置 fail2ban 以减少服务器负载。
请注意,如果您不喜欢“每日消息”中的广告,您可以通过编辑/etc/default/motd-news并设置“ENABLED=0”来删除它。我还删除了 /etc/update-motd.d/10-help-text。
要通过 SSH 设置从 VPS 到另一台服务器的自动备份(例如,使用rsync命令),您将在 VPS 本身上生成一个公钥/私钥对,使用如下命令,密码为空。
ssh-keygen -t ed25519
公钥通常保存在 /root/.ssh/id_ed25519.pub中,从中可以将其复制到远程服务器上的 authorized_keys 文件中。
以上就是vps搭建教程的第三部分,希望能帮助到大家!
审核编辑 黄昊宇
全部0条评论
快来发表一下你的评论吧 !