盒子
导航
文章目录
  1. 一、开启RSA认证
  2. 二、创建SSH Key
  3. 三、添加公钥到服务器

开启RSA认证使用SSH免密码登录

放在EverNote中的笔记,另外参考Github的帮助文档整理出来,便于参考。

一、开启RSA认证

远程服务器上SSH的配置文件/etc/ssh/sshd_config指定了是否开启RSA认证,修改该配置文件需要root权限。开启RSA认证要保证该配置文件中的如下选项被开启:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

然后在用户的home目录下创建文件夹.ssh并在该文件夹里面authorized_keys文件,设置权限:

$ cd
$ sudo chmod 700 .ssh
$ sudo chmod 600 .ssh/authorized_keys

二、创建SSH Key

这里举例类Unix客户端环境,例如我的是Macbook Pro:

$ ssh-keygen -t rsa -b 4096 -C “your_email@example.com
Generating public/private rsa key pair.

以上命令用于使用名称ID “your_email@example.com“ 来生成公钥/私钥对,如下指定生成的私钥存放地址和私钥密码:

Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [回车]
Enter passphrase (empty for no passphrase): [输入密码]
Enter same passphrase again: [再次输入密码]

启动ssh-agent然后添加私钥到ssh-agent

$ eval “$(ssh-agent -s)”
Agent pid 2153
$
$ ssh-add ~/.ssh/id_rsa

三、添加公钥到服务器

~/.ssh/id_rsa.pub公钥的内容拷贝到剪贴板(Mac下可以使用pbcopy命令):

$ cd ~/.ssh
$ pbcopy < id_rsa.pub

然后粘贴到服务器上的.ssh/authorized_keys文件中,在客户端就可以通过如下命令进行登录了(不用再输入密码):

$ ssh user@server_domain

使用RSA认证登录的好处是可想而知的,不用每次输入密码,累积节省不少时间;但风险也是存在的,运维人员需要针对离职员工去检查服务器并清除他们的Key。PROD环境还是不建议使用RSA,而是使用密码登录,提高警惕性。