Linux 技术手札

PuTTY 免密码登入 SSH

PuTTY 是十分有名的开源 SSH Client, 很多系统管理员也使用它连接 SSH, 而由不用安装, 十分方便。

以下会介绍在 Putty 使用 Public key 及 Private key 实现免密码登录 SSH, 这样不但省却了每次输入复杂密码的麻烦, 而且也更加安全。

PuTTY 内建没有产生 SSH private key 的功能, 需要到官方网站下载作者提供的另一个工具 — PuTTYgen:

PuTTY Download Page

去到 PuTTY 官方下载页面后, 找到 “PuTTYgen”, 下载后无需安装, 可以直接执行。

1. 开启了 PuTTYgen 后, 根据默认值便可以, 直接按 “Generate”, 然后将鼠标移到 PuTTYgen 的空白处不断移动, 直至上面绿色的进度完成为止。

2. 按 “Save public key” 储存 Public key; 及按 “Save private key” 储存 Private key.

3. 现在将 Public key 储存到 SSH Server, 将 “Public key for pasting into OpenSSH authorized_keys file:” 的内容全部复制.

4. 登入远端主机, 执行以下指令:

$ mkdir ~/.ssh
$ chmod 0700 ~/.ssh
$ touch ~/.ssh/authorized_keys
$ 0644 ~/.ssh/authorized_keys

用编辑器开启 ~/.ssh/authorized_keys:

$ vi ~/.ssh/authorized_keys

把上面第 3 步在 PuTTYgen 复制的 Public key 贴上 (按 i 键, 然后按 right click 鼠标。

储存盘案后离开编辑器。

5. 开启 PuTTY, 点选已经储存了的 Sessions 按 “Load”.

6. 在左边选单按 “Connection” -> “Data”, 在 “Auto-login username” 输入登入的使用者名称.

7. 在 “Connection” -> “SSH” -> “Auth”, 在 “Private key file for authentication:” 选择在第 2 步储存的 Private key.

8. 在左边选单按 “Session”, 按 “Save”.

设定完成后, 现在可以用 PuTTY 直接登录 SSH Server, 当试过可以正常登录后, 可以考虑禁止 SSH Server 使用密码登录, 以增加系统的安全性。做法是开启 SSH Server 的档案 /etc/ssh/sshd_config:

# vi /etc/ssh/sshd_config

找到 PasswordAuthentication 及 UsePAM, 两个选项都设定成 no, 即这样:

PasswordAuthentication no
UsePAM no

储存盘案后, 重新加载 SSH:

# systemctl reload sshd
Exit mobile version