ssh免密码实现远程登陆

Linux 小智 1058℃ 0评论

ssh 免密码登录主要是使用公钥与私钥来实现,在这里需要用到一个命令ssh-keygen
ssh-keygen命令主要用于生成、管理ssh认证密钥,支持RSA和DSA两种非对称加密方式。

用法:
ssh-keygen 参数
参数:
-b:指定密钥长度;
-e:读取openssh的私钥或者公钥文件;
-C:添加注释; 
-f:指定用来保存密钥的文件名; 
-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥; 
-l:显示公钥文件的指纹数据; 
-N:提供一个新密语; 
-P:提供(旧)密语; 
-q:静默模式;

举例:
首先生成公钥和私钥(以rsa方式为例)
ssh-keygen
上面需要指定的保存文件,密码采用默认即可(直接回车)
之后会在.ssh文件下生成两个文件

[root@VM_112_250_centos ~]# cd /root/.ssh
[root@VM_112_250_centos .ssh]# ll
total 8
-rw-r--r-- 1 root root    0 Nov 15 10:19 authorized_keys  ==》可用于登陆该用户的公钥
-rw------- 1 root root 1679 Dec  3 16:15 id_rsa     ==》新生成的私钥文件
-rw-r--r-- 1 root root  404 Dec  3 16:15 id_rsa.pub   ==》新生成的公钥文件

有了这些文件,我们就可以采用无密码的方式远程登陆了

无密码远程登陆
将上面生成的公钥文件复制到被登陆机器的.ssh目录下,然后将其内容追加到.ssh目录下的authorized_keys中
命令:

 
[root@VM_112_250_centos .ssh]# cat authorized_keys    ==》打开文件
[root@VM_112_250_centos .ssh]# cat id_rsa.pub >>authorized_keys    ==》向已存在的文件追加内容
[root@VM_112_250_centos .ssh]# cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIA38NWpbJnR2YYn9IOiCAxyFa30EJAll2cminUJ7mDEo/+A6axzgDsfRjkWUdwtLGT107Kgnt+RZOxa+NDaxECHrgFzLlORwdBOAsfi6alwDiu4VCn7HKm0C4p7FCXWydYbojJ+t4MC/D/9SuKshzrlpfCGFiZDAB9qc1SoQduqiKDzjLUfhJCiFMK+pNJcGBWuiJLqkoD34QOx0G6j5quFW/2uqqt2eLtMn7IFSNFpNkkRkeSJmLqE4MI1SjPj4bw7vxCn8fVjnzd4xUFOhOcoUmuRz4BgMrCC1X4N7r0G8pYDn1JCJcF4ojTXbTjyuI2B0WmvvNbzHmXmsEyMKF root@VM_112_250_centos

注意:在这里可能会出现将用户公钥添加到.ssh/authorized_keys文件后任然无法采用无密码登录的问题
这里很大可能是权限的问题,authorized_keys文件权限需要设定为600(拥有者具有读写的权限),.ssh目录需要设定为700(拥有者具有读写执行的权限)
更改权限命令,关于权限的介绍可以参考这里 http://www.luxinzhi.com/system/122.html

[root@VM_112_250_centos ~]# chmod 700 .ssh
[root@VM_112_250_centos ~]# chmod 600 .ssh/authorized_keys

本文固定链接:心知博客 » ssh免密码实现远程登陆
本站内容除特别标注外均为原创,欢迎转载,但请保留出处!

喜欢 (2)
发表我的评论
取消评论
表情

请填写您的昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址