Linux 实现密钥免密登录

Linux 实现密钥免密登录

环境:CentOS 7

一、 创建密钥

登录Linux,进入/root/.ssh/目录下

执行ssh-keygen -t rsa创建密钥一直回车即可,因为是免密所以直接回车略过;执行完之后会在/root/.ssh/下生成两个文件id_rsa、id_rsa.pub分别为私钥和公钥,如果对密钥长度有限制的话可以执行ssh-keygen -t rsa -b 4096

二、创建信任

把生成的公钥文件id_rsa.pub下载、上传到目标服务器上,也可以直接通过命令ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.1传过去,不过命令默认端口是22

登录目标服务器,相同的目录/root/.ssh/下查看有没有authorized_keys文件,没有的话需要创建一个,命令是touch authorized_keys ,创建后授权600 ,把公钥文件id_rsa.pub追加到authorized_keys文件中,命令是 cat 192.168.1.1.pub >> authorized_keys,注意是双箭头>>单箭头会覆盖文件中的内容。

三、免密登录

ssh root@192.168.1.55  *//这种是使用自己的公钥登录目标服务器

使用公钥登录,需要把本地生成的公钥添加到目标服务器的 authorized_keys文件中

使用目标服务器的私钥登录,需要两步

第一步:在目标服务器上生成密钥对,把目标服务器自己的公钥添加到目标服务器自己的 authorized_keys信任文件中

第二步:把目标服务器的私钥拷贝到你本地的服务器

# 这里的 id_rsa 私钥文件是目标服务器的私钥文件
ssh -i id_rsa root@192.168.1.5

四、免密登录普通用户

  1. 流程大致一样,root用户是在/root/.ssh/目录下;普通用户是在/home/用户/.ssh/目录下,没有的话需要手动创建

  2. mkdir /home/demo/.ssh  //创建文件夹,授权700
    touch /home/demo/.ssh/authorized_keys   //创建文件,授权600
    cat /home/demo/.ssh/id_rsa.pub >> /home/demo/.ssh/authorized_keys   //追加公钥
    
  3. 基于密钥认证的配置

    vim /etc/ssh/sshd_config
    PasswordAuthentication no //禁止使用基于口令认证的方式登陆
    PubkeyAuthentication yes //允许使用基于密钥认证的方式登陆
    /etc/init.d/sshd reload

五、网上找到的一些资料

1、普通用户切换到root权限且无需输入密码,在root模式下进行以下操作

visudo  //最后一行加入
Cmnd_Alias SU = /bin/su
oper ALL = (root)  NOPASSWD: SU

六、实践操作

ssh-keygen 
[root@hdss7-200 ~]# cd .ssh/
ssh-copy-id hdss7-200.host.com
scp -r .ssh/ 10.4.7.11:/root/
posted @ 2020-08-16 15:39  水煮沉浮~大刀肉  阅读(501)  评论(0)    收藏  举报