Ubuntu使用RSA密钥对登陆SSH

由于最近登陆实验室服务器的需要,博主学习了如何使用RSA登陆SSH,记录一下

密钥形式登录的原理是:利用密钥生成器制作一对密钥——一只公钥和一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。

 

所以首先我们来制作RSA密钥

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 %公钥

其中密钥锁码是使用私钥时需要输入这个设置的密码,进一步增强安全性

 

然后将生成的公钥导入到服务器的.ssh 文件夹中

在服务器上执行

cd .ssh
cat id_rsa.pub >> authorized_keys

注意调整好权限

chmod 600 authorized_keys
chmod 700 ~/.ssh

设置服务器ssh

编辑 /etc/ssh/sshd_config 文件,找到并进行如下设置(一般来说是取消注释):

RSAAuthentication yes
PubkeyAuthentication yes

注意保留root登陆

PermitRootLogin yes

然后重启ssh服务

service sshd restart

 

然后本地客户端就可以使用RSA密钥的方式登陆ssh了,如果需要取消密码登陆,则再次编辑sshd_config文件

PasswordAuthentication no

这样就禁用了密码登陆ssh

 

注意,如果你想把私钥复制到其他liunx电脑使用的话,须将前面生成的id_rsa文件复制到客户端的.ssh文件夹中,然后调整权限,不然会报错

chmod 600 id_rsa

然后添加私钥到客户端

ssh-add
ssh-add -l %查看已添加的密钥

 

 

发表回复