用SSH 密钥登录VPS

以前没有在VPS 上部署重要的东西,设置一个稍复杂的密码就可以。下面对记录一下VPS 禁止用户名+密码登录,仅使用密钥登录的过程。

用SSH 密钥登录VPS

生成SSH 公钥

确认是否已经有一个公钥,即检查.ssh文件夹,以及文件夹中是否存在id_rsaid_rsa.pub文件,有.pub后缀的文件就是公钥,另一个文件则是密钥。如果不存在,或者干脆连.ssh文件夹都没有,可以进行创建。如果存在,就直接把id_rsa.pub内容输出,粘贴的服务器的相关文件。

1
2
$ cd ~/.ssh
$ ls

可以用ssh-keygen来创建

默认公钥的位置(.ssh/id_rsa),然后它会让你重复一个密码两次,如果不想在使用公钥的时候输入密码,可以留空。

更改VPS sshd 配置

编辑sshd 配置文件 /etc/ssh/sshd_config

找到并修改为下面的样子:

1
2
3
4
5
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

PasswordAuthentication no

添加公钥

打开文件~/.ssh/authorized_keys, 把本地的id_rsa.pub 内容粘贴到里面,保存退出

重启sshd 服务

1
service sshd restart

其它安全措施

上面所说的登录方式只是最基本的安全措施,还有比如更改ssh 默认端口、禁止root用户登录、使用denyhosts、启用iptables限制等等。

查看尝试暴力破解机器密码的人

1
grep "Failed password for root" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr | more

查看成功登录信息

1
2
3
4
5
6
7
8
9
10
11
查看当前登录用户信息 
who命令: 
who缺省输出包括用户名、终端类型、登陆日期以及远程主机。 
who /var/log/wtmp 

last

last 用户名

last -t 20181206160404 
显示这个时间戳之前的登陆历史

客户端密钥备份

如果电脑重装了,就很难登录服务器,可以备份密钥,直接复制id_rsaid_rsa.pub两个文件。当电脑重装或者想在其他电脑上登录主机,直接把这两个文件复制到 ~/.ssh/ 目录下就行。

如果使用备份的id_rsa 文件出现下面的错误提示

1
2
3
4
5
6
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.

可以用更改文件属性的方法来解决

1
chmod 0600 id_rsa

去除 id_rsa 密码

1
ssh-keygen -f id_rsa -p

1
2
3
4
5
6
7
8
9
10
11
12
1.使用openssl命令去掉私钥的密码

openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa_new
2.备份旧私钥

mv ~/.ssh/id_rsa ~/.ssh/id_rsa.backup
3.使用新私钥

mv ~/.ssh/id_rsa_new ~/.ssh/id_rsa
4.设置权限

chmod 600 ~/.ssh/id_rsa

本文网址: https://pylist.com/topic/153.html 转摘请注明来源

Suggested Topics

使用Golang selenium WebDriver 自动登录微博

有时候在Golang 程序里需要读取微博的某个页面内容,提示需要登录。最简单的方法是在浏览器里登录后,直接复制Cookie 的内容,然后 http 请求带上Cookie。这样会有人工介入,不是很方便,这里借用 selenium WebDriver 来打开微博登录页面,然后自动填入用户名与密码。...

电信宽带 SSH 回家之路

家里有台电脑长时间运行的服务,比如 NAS 或监控,需要外网能直接访问,而通常家庭的网络是不能给外网访问,除了安全问题、还有网络传输的原因。有时候在外面,需要使用 SSH 方式登录家里的电脑来查看程序状态,还得做点改变。...

ramnode vps IP 访问不了,顺利更换很方便

Ramnode是一家开了很久的夫妻店,商家的机房非常稳定,信誉非常不错,很多安心做网站的朋友都在用他家的机器,一直很喜欢ramnode 的小vps,偶尔有些IP 在国内访问不了。...

ssdb 在小内存vps 上的配置

ssdb 是一个数据结构和接口与redis 很相近的NoSQL 数据库,但它对内存依赖不高,数据可直接落到硬盘,所以 ssdb 在小内存上跑得也很欢。...

在128M的VPS上配置mysql+Tornado+Nginx笔记

最近 123systems http://goo.gl/2Q0X2 又推出一年$10的便宜 VPS,128M内存,可以用来学习。在这样的vps 上放一个博客或做反向代理绰绰有余,买下后尝试配一个mysql+Tornado+Nginx 环境。...

Mac 登录 App Store 出现“发生了未知错误”的解决方法

当更新电脑里的应用时需要登录 App Store,很久以前就出现这情况了,因为升级的应用不是很急,也就放下不管。现在需要安装新的应用,而且没有找到其它途径下载`dmg`文件安装,只能从App Store 安装。于是下决心解决登录时出现“发生了未知错误”的问题。...

Leave a Comment