我用的服务提供商是vultr,可以直接在网页上使用VNC进行操作,但是比较麻烦,因此大部分时候都是使用ssh登陆的。
ssh的一般是使用密码登陆的,首先修改ssh的登陆端口,默认是22,自己更改到大一点,数字小的话可能被占用,就无法使用ssh登陆了。
修改/etc/ssh/sshd_config
文件,注意需要root权限。
找到port
把后面的数字改成你想要的端口。
接下来我们应该禁止直接root登陆,意义不用明说了对吧。
在同样的文件里面找到PermitRootLogin
这一行,后面改为no
,拒绝root用户登陆。
这样就是基本的安全设置了。但是仅仅是这样是不够的,被大佬知道了肯定要说你个腊鸡的。
那就学习使用私钥登陆呗,两种方法:
- 从server端生成密钥对,把私钥下载到client端使用。
- 从client端生成密钥对,把公钥放到server上。
从server端生成密钥对需要server安装ssh,通过输入下列命令安装相应的ssh:
安装ssh-client
apt-get install openssh-client
安装ssh-server
apt-get install openssh-server
然后输入命令
ssh-keygen -t rsa
生成密钥路径,默认在当前用户目录下的~/.ssh
文件夹中。默认的加密算法是rsa2048,也可以使用
ssh-keygen -b 4096 -t rsa
指定4096位的RSA长度。在生成过程中会要求输入密码来加密你的密钥,如果不需要可以按enter
跳过,区别是有密码的密钥在登陆时还需要输入一次密码。
生成密钥之后,公钥要放在server上,私钥要放在client上,都是在/home/[user]/.ssh/
目录下,公钥的文件名应该是authorized_keys
。server和client之间传输文件可以使用sftp或者scp
继续修改/etc/ssh/sshd_config
文件,把RSAAuthentication
和PubkeyAuthentication
的#
注释删除,后面加上yes
RSAAuthentication yes
PubkeyAuthentication yes
去掉
AuthorizedKeysFile %h/.ssh/authorized_keys
前面的注释,保存,重启ssh服务
sudo /etc/init.d/ssh restart
最后在client上输入
ssh [user]@IPaddress -p [port]
就可以通过ssh访问VPS了