Linux VPS的SSH的安全设置(含SSH无密码登录)

Posted by zuzhihui in vps技术 on 2008/07/29 with No Comments

登录Linux VPS一般都是通过SSH,通过SSH执行Shell,比使用CPanel等面板的功能要强大。但SSH的安全性必须要引起注意,因为在互联网上每时每刻都有很多人和程序在试图破解SSH的用户名和密码,一个VPS一天遭遇上千次SSH的登录请求有时候也很常见。虽然攻击很多,但不用担心,因为只要掌握好VPS安全要点,VPS就不怕被人攻击。下面就谈谈Linux VPS SSH Server的安全性。

SSH支持常见的凭密码登录和凭证书(Public Key & Private Key)登录。我们缺省用密码登录。

凭密码登录VPS

这种方式的优点是方便。缺点是别人可以来猜你的密码。如果是用密码登录VPS,下面几条能提高安全性:

  1. VPS的密码要尽量复杂,不要是某个英语单词,最好包含大写字母,小写字母,数字,特殊符号等,密码越复杂,越难破解。有很多人的密码被破解的原因都是他们的密码和用户名相同!
  2. 不要使用admin,test,user,VPS等常见的用户名,因为SSH攻击很多都是针对这些常见用户名进行的。
  3. 禁止root通过SSH登录VPS,所有的攻击者都知道root这个用户名,root又是超级用户,所以自然是被攻击的热点。禁止root通过ssh登录VPS的方法是修改/etc/ssh/sshd_config文件,包含这行即可”PermitRootLogin no”。没有了root,如果想在VPS上执行某些特权命令,可以通过sudo来实现。
  4. 修改SSH Server的端口号,标准的SSH端口是22这是公开的每个攻击者都知道的,把你的SSH Server的端口修改为一个别人不知道的端口,可以减少VPS被攻击的机会

凭证书登录VPS

评证书登录VPS的优点是安全性极高,使用这种方式根本不用担心VPS的密码被别人猜到。这种方式的缺点是生成证书要稍微复杂一些。

缺省所有的Linux VPS既支持证书登录,又支持密码登录。我们强烈建议如果你已经配置了证书登录,那就拒绝使用密码登录VPS,否则VPS的安全性还是没有提高。配置方法是修改文件/etc/ssh/sshd_config包含”PasswordAuthentication no”即可。

产生证书的方法是在VPS上运行命令ssh-keygen然后一路回车即可,这个命令将会在$HOME/.ssh目录下生成两个文件,id_rsa和id_rsa.pub

test@zzh-laptop:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa):
Created directory '/home/test/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/test/.ssh/id_rsa.
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
The key fingerprint is:
c4:5d:6e:50:2c:ba:a2:d6:59:12:05:cd:24:c9:24:30 test@zzh-laptop
test@zzh-laptop:~$ ls -a .ssh
.  ..  id_rsa  id_rsa.pub
test@zzh-laptop:~$

其中id_rsa.pub是公钥,这个文件不需要保密,你可以把它公开给任何人,没有关系!id_rsa就不同了,它是私钥,这个文件一定要保密,不能让别人看到这个文件的内容。

有了公钥和私钥,接下来就把私钥,也就是id_rsa这个文件传送到你的PC机上去,然后建议在VPS上删除这个文件!

在VPS上运行如下命令:

cd
cd .ssh
cp id_rsa.pub authorized_keys2

也就是把公钥保存到$HOME/.ssh/authorized_keys2文件里面。

如果你的PC机是Linux系统(那么你应该知道怎么做了,接下来的估计是废话),那么就把私钥文件id_rsa放在$HOME/.ssh/目录下,注意.ssh目录和id_rsa文件的权限要和下面一致:

test@zzh-laptop:~$ ls -ld .ssh
drwx------ 2 test test 4096 2008-07-29 22:15 .ssh
test@zzh-laptop:~$ ls -l .ssh/id_rsa
-rw------- 1 test test 1675 2008-07-29 22:10 .ssh/id_rsa

然后在Linux PC机上运行ssh root@vps (root代表用户名,vps代表vps的IP地址)就可以无密码SSH登录VPS了。

如果你的PC机是Windows操作系统,则需要把id_rsa私钥转换成putty的ppk格式,然后配置putty软件使用证书登录VPS。如果你还使用winscp软件来拷贝文件,则还可以配置winscp使用私钥无密码访问Linux VPS

标签:

Leave a Comment

Back to Top

2007-2013 © 北京瑞豪开源科技有限公司 京ICP备13004995号-2