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

通过shell登录远端Linux服务器有两种基本方式,一种是使用用户名密码,一种是使用SSH公私钥认证,这里记录如何开启Linux系统下的SSH RSA登录认证。

开启RSA认证

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

1
2
3
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

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

1
2
3
$ cd
$ sudo chmod 700 .ssh
$ sudo chmod 600 .ssh/authorized_keys

创建SSH Key

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

1
2
$ ssh-keygen -t rsa -b 4096 -C "[email protected]"
Generating public/private rsa key pair.

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

1
2
3
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

1
2
3
$ eval "(ssh-agent -s)"
Agent pid 2153
$ ssh-add ~/.ssh/id_rsa

添加公钥到服务器

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

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

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

1
$ ssh [email protected]_domain
# Linux, RSA, SSH

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×