探索未知,记录点滴

如何安全高效地使用SSH管理VPS

Spread the love

使用VPS已经大半年时间了,期间我一直通过SSH的方式管理VPS,本期来和大家分享一下我利用SSH管理VPS的几个值得注意的地方,以及如何极大限度的做到相对安全。

交流群:Newlearnerの水群

《如何安全高效地使用SSH管理VPS》

 

修改默认SSH 端口

一般的商家默认的SSH端口是22,搬瓦工等商家除外,是给定的随机高位端口。默认22端口作为SSH端口带来的问题是有些人会使用肉鸡进行弱端口扫描,一旦扫描成功,立即进行弱管理员名称(很多为admin、root)和弱密码尝试爆破。所以很多人在长期不登录VPS之后常常会发现输入lastb之后有很多尝试登陆但是fail的例子。

好多人说我们可以使用denyhost这样的工具来防止,一旦检测到同一个ip多次登录失败,就ban掉。但是对于强迫症患者和完美主义者来讲,最治本的方法还是直接修改SSH端口。

修改/etc/ssh/sshd_config文件:

禁止Root用户登录

在禁用root用户远程登录之前,我们需要创建一个普通用户,创建好之后修改SSH配置文件即可

此时我们应该用命令ssh -p port username@your ip/hostname来进行SSH 远程登录

使用 RSA 密钥对登陆 SSH

密钥对生成

如果你使用的是macOS或者Linux,直接到终端输入ssh-keygen -b 2048即可:

如果你使用的是Windows,请借助PuTTYgen来生成密钥对:

《如何安全高效地使用SSH管理VPS》

《如何安全高效地使用SSH管理VPS》

密钥对上传

对于macOS和Linux用户,直接输入ssh-copy-id -i ~/.ssh/id_rsa -p port<USERNAME>@<HOST>即可将私钥上传至服务器。

对于Windows用户,通过PuTTYgen获取密钥之后,将其内容复制到.ssh/authorized_keys里面即可(PuTTY导出的密钥有时候会分行,请注意删除多余的换行符,authorized_keys里面可以放多个密钥,一行一个分开即可)。

仅允许密钥登录

做完以上步骤,想要登录我们的VPS只剩下两种途径了。一个是得知你新建的普通用户名+密码,另一个是在自己生成密钥的电脑上面通过新建的普通用户名登录。为了进一步保险起见,我们继续设置仅允许密钥登录。

在服务器上进入 /etc/ssh/sshd_config 修改如下内容:

 进一步简化SSH登录步骤

到此我们已经可以在本机上面通过用户名+密钥的方式登陆了,省去了输入密码的步骤并且在一定程度上面提升了安全性。对于macOS和Linux用户,我们还可以借助SSH config进一步简化我们的登录步骤。

对于一个有着很多VPS,不愿意去记冗长的ip和域名的用户来讲,除了选择一个好用的SSH客户端软件之外,SSH config也可以发挥其自身的优势。

SSH config是Open SSH 客户端配置文件,允许你以配置项的形式,记录各个服务器的连接信息,并允许你使用一个定义好的别名来代替其对应的 ssh 命令参数。

首先在.ssh目录下面创建一个config文件:vi .ssh/config

接着在其中填写上如下信息并保存:

一个配置中可以添加多个Host主机,使用时只需在终端输入ssh myhost即可,省去了输入ssh -p port -i 私钥路径 username@your ip/hostname的繁琐步骤。

HostName

需要ssh连接过去的主机名,一般是IP地址,也可以用%h来替代命令行参数。

User

登录主机的用户名

IdentityFile

认证证书文件,默认位置是~/.ssh/id_rsa~/ssh/id_dsa等,如果采用默认的证书,可以不用设置此参数,除非你的证书放在某个自定义的目录,那么你就需要设置该参数来指向你的证书。

Port

SSH访问主机的端口号,默认是22端口,同上,只有在非默认情况下才需要设置该值。

其他

以上是常用的参数,其他参数可以在命令行通过man ssh_config来查看。

推荐的SSH客户端软件

  • Terminal.app:macOS和Linux自带,不解释
  • Finalshell:我曾经和开发组成员之一有过一段时间的交流,他向我安利了这款神器。支持macOS、Windows、Linux,自带sftp、内网穿透、VPS性能监控(cpu内存网络io等)、海外服务器加速。(本质是挂代理上SSH,降低断线的风险)我个人也十分推荐,并且支持多VPS管理,十分方便,功能强大
  • Xshell:Windows上面一款强大的SSH工具,国区的销售权被毒瘤马克丁拿到了(口区)
  • Putty:Windows上面免费的SSH工具,能用
  • Hyperapp:一款较为全能的SSH客户端软件,适用于iOS。除了可以做到SSH以及各种监控外,这个软件还提供了一些环境以及代理的一键安装功能,十分适合新手了。现在在美区有售
  • Termius:全平台支持的SSH工具,功能中规中矩。
  • 待补充……

发表评论

邮箱地址不会被公开。 必填项已用*标注

Recommended
19.10.9更新:…