1. 什么是VPS,什么是SSH
VPS就是永远一台有公网IP的永远开机的电脑,可以用他做网站服务器。
SSH就是安全的远程shell,命令行界面登录控制VPS。
我买的套餐:bandwagon 40$ 一年,1G 内存,20GB硬盘,2T流量。
建立VPS并选择安装操作系统后,bandwagon的kiwivm管理系统会给你VPS的IP,登录端口port,和一个随机生成的密码。
最基本的登录:
- 在linux下:$ssh -p port user@IP
- 在windows下:putty session输入对应IP和Port
均在命令行界面输入密码.但是因为:
- 1.经常要登录.
- 2.出于安全考虑,防止暴力SSH口令扫描.
2.VPS端设置
需要设置RSA密钥登录.本文在VPS生成公钥和密钥,当然也可以在本地生成.
2.1 VPS上生成RSA密钥
以下这些都是在VPS上!
$ssh-keygen
输入密钥名(可以包含路径),例如abc,密码按回车跳过留空,这样才能免密码登录.
2.2 安装公钥
把在运行命令当前目录生成了的abc和abc.pub,放在/root/.ssh里,没有这个文件夹就新建一个:
$mkdir .ssh
$mv abc.pub /root/.ssh
$cat abc.pub >> authorized_keys
$chmod 600 authorized_keys
$chmod 700 /root/.ssh
2.3 设置VPS上的SSH
在VPS上
$ vim /etc/ssh/sshd_config
设置开启RSA:
RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes
最后重启使生效(ubuntu下是ssh):
$ service sshd restart
$ service ssh restart
或者
$ /etc/init.d/ssh restart
3. linux登录VPS
本地linux端设置私钥
把VPS生成的私钥文件下载下来(scp),或者复制其内容进文件abc,放到~/.ssh/下,注意其权限.
$chmod 600 ~/.ssh/abc
$vi ~/.ssh/config
在里面进行如下设置:
host vps
HostName 100.*.*.8
Port ***
User root
IdentityFile~/.ssh/abc
以后每次登录就输入:
$ssh vps
即可.
4. windows登录VPS
如果使用putty的话,需要将Linux主机上生成的id_rsa文件下载到本地。运行putty压缩包里面的puttygen.exe,选择Conversions->Import key选择私钥文件id_rsa.
点击“Save Private Key”,将私钥保存为id_rsa.ppk
putty登录选择ssh>auth>选中ppk文件.即可登录.
如果是在windows生成的key就如此变换到linux主机:
sudo apt-get install putty
putty private.ppk -O private-openssh -o abc
5.安全设置
设置新密码:
$passwd
禁用密码登录:
请在已经设置好能够免密码登录之后再设置此步!!!
$ vim /etc/ssh/sshd_config
设置:
PasswordAuthentication no
ClientAliveInterval 60
fail2ban这个软件将通过使用 iptables 防火墙,将尝试爆破 ssh 密码的 IP 封停,默认10分钟,这样可以有效防止攻击。
apt-get -y install fail2ban ufw
禁用掉所有端口,只留下需要使用的端口永远都是正确的选择:
ufw status
ufw allow ssh
ufw allow http
ufw allow https
//你也可以使用端口来开启
ufw allow 53
//请务必开启 ssh 端口,如果你不是标准端口,请记得开启,否则后果自负!
ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
y
//会提示你影响ssh 连接,但只要提前加入了规则,就不会影响。
用什么添加什么。它也会默认打开一些端口比如说 ICMP。
另外,它会默认设置 iptables 的 INPUT 表为拒绝,方便安全。
对了!记得使用如下命令来导出配置,然后配置启动加载,否则一会儿各种规则就消失不见啦!
iptables-save > /etc/iptables.up.rules
//导出配置,以后可以直接编辑;
iptables-restore < /etc/iptables.up.rules
//导入配置,编辑之后就可以导入立即生效!
编辑/etc/network/interfaces文件来添加启动配置
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.up.rules
//最后这一条就是要添加进的命令!