Hugh's Blog

SSH 密钥登录

一般登录 VPS 用密码的话容易被人暴力破解,如果换成密钥登录会好很多,配置过程也简单,做个记录。

生成密钥,最好在 Linux 下操作

# 中间会询问密钥保存目录,默认是 ~/.ssh 下,回车就行
# 如果想更加安全的话,密码短语也可以输入,回车留空也行
ssh-keygen -t rsa -C "comment"

生成之后,在 ~/.ssh 目录下可以找到两个文件 id_rsa (私钥) 和 id_rsa.pub (公钥),这两个文件最好下载下来保存好,接下来给服务器配置公钥

cd ~/.ssh
cat id_rsa.pub >> authorized_keys
# 目录权限也要修改
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

最后修改下 SSH (/etc/ssh/sshd_config) 的配置,允许密钥登录

RSAAuthentication yes
PubkeyAuthentication yes

修改完之后重启 SSH

sudo service ssh restart

这时候最好另外再开启一个对话来测试是否可以成功,测试可以登录之后就修改 SSH 配置把密码登录禁止并重启

PasswordAuthentication no

我是用 PuTTY 来登录 VPS 的,需要使用 PuTTYGen 另外再生成 ppk 私钥文件,下载软件

2017-08-15

从 VPS A 使用密钥登录到 VPS B。

在机器 A 上生成密钥对:

ssh-keygen -t rsa

把 A 生成的公钥上传都到 B 中,即 /path/user/.ssh/authorized_keys

ssh-copy-id [email protected] # B's IP

上传好之后在 A 上直接使用 ssh user@IP 登录就行,接下来就是禁止 SSH 密码登录的配置了。