SSH 设置密钥对实现免密码连接


SSH 密钥对让您无需输入密码就能登录到 SSH 服务器,而且还能有效的防止远程主机密码泄漏以及被暴力破解。

原理解析:

图片出处:Linux SSH 基于密钥交换的自动登录原理是怎样的? – 有用


一、使用 ssh-keygen 在客户机上生成 SSH 密钥

1.1 命令用法

ssh-keygen [-t 密钥种类] [-b 加密位数]

如果不指定密钥种类的话,默认为 2048 位的 RSA 加密,为了安全点还是加到 4096 位吧。

1.2 举例说明

[root: ~]# ssh-keygen -t rsa -b 4096    #生成一个4096位的RSA密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):  #保存密钥对的位置,直接回车即可
Enter passphrase (empty for no passphrase):    #设置密钥对的密码,这里不设置,直接敲两下回车即可
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx [email protected]
The key's randomart image is:
+--[ RSA 4096]----+
|    Eo+.         |
|     *.o         |
|  . o O +        |
| . o B + o       |
|  . * o S        |
| . o o           |
|  . o            |
|   . .           |
|  ...            |
+-----------------+
#创建密钥对完成

二、使用 ssh-copy-id 把公钥上传到远程主机上。

2.1 命令用法

ssh-copy-id <用户名@主机>

2.2 举例说明

[root: ~]# ssh-copy-id [email protected]
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

注意:默认服务器上的 .ssh/authorized_keys 文件存储着合法客户机的公钥,如果客户机的私钥泄漏,应该在该文件里删除私钥泄漏的客户机公钥。


三、设置服务器

1. 确保 ~/.ssh 目录中的所有内容没有对其他用户赋予写、执行权限。

如果别的用户有了对这个目录的写权限,那么他们就可以自由地往里面添加自己的公钥,然后自由地登录您的账户了!显然不能这样。 sshd 有个自我保护的功能,当这个目录对其他用户赋予写权限时,公钥认证将不能进行。

chmod -R 600 ~/.ssh

2. 允许公钥登录,禁止密码登录。

编辑 /etc/ssh/sshd_config,检查并设置以下选项。

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no

四、享受免密码连接的快感

ssh [email protected]
Last login: Tue May  9 21:45:31 2017 from 10.16.1.1
[root: ~]# 

现在不用输密码就能直接登录了。既方便又安全,爽吧!

发表评论