云服务器

SSH密钥

 

什么是SSH密钥

SSH密钥是一种无须密码登录Linux实例的认证方式。

通过加密方法生成一对SSH密钥,一个对外公开密钥,成为公钥,一个由您保密保存,称为私钥。 将公钥存放于您的Linux实例中,私钥存放在本地机器中,即可使用SSH命令进行远程连接。

 

SSH密钥的优势

SSH密钥的安全强度远高于用户使用密码。

只需配置SSH私钥,即可远程连接,无需重复输入密码。

 

使用限制

SSH密钥对仅支持Linux系统创建。

创建SSH密钥操作步骤

使用VNC或服务器账号密码连接Linux实例。

 

打开终端,输入以下指令,查看是否已经生成SSH秘钥。

 

ls -al ~/.ssh

# Lists the files in your .ssh directory, if they exist

如果有文件id_rsa.pub 或 id_dsa.pub 说明已经创建过SSH密钥,导入即可。

 

生成新的SSH密钥。

 

在服务器上制作密钥对。首先用密码登录到您打算使用密钥登录的账户,然后执行以下命令:

 

[root@host ~]$ ssh-keygen <== 建立密钥对

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): <== 按 Enter

Created directory '/root/.ssh'.

Enter passphrase (empty for no passphrase): <== 输入密钥锁码,或直接按 Enter 留空

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: xxxxxxx

 

创建完成,安装公钥。

 

输入以下命令,在服务器上安装公钥:

 

[root@host ~]$ cd .ssh

[root@host .ssh]$ cat id_rsa.pub >> authorized_keys

如此便完成了公钥的安装。为了确保连接成功,请保证以下文件权限正确:

[root@host .ssh]$ chmod 600 authorized_keys

[root@host .ssh]$ chmod 700 ~/.ssh

 

设置SSH,打开密钥登录。

 

编辑 /etc/ssh/sshd_config 文件,进行如下设置:

 

RSAAuthentication yes

PubkeyAuthentication yes

另外,请留意 root 用户能否通过 SSH 登录:

PermitRootLogin yes

当您完成全部设置,并以密钥方式登录成功后,再禁用密码登录:

PasswordAuthentication no

最后,重启 SSH 服务:

[root@host .ssh]$ service sshd restart

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: