linux系统(centos)配置ssh免密登录

linux系统(centos)配置ssh免密登录

背景

在日常使用时候,远程执行一些命令或脚本,交互式的输入密码有些不方便。故需配置免密登录。

用SSH命令行在A服务器上远程登录B服务器不需要密码。

原理

基于SSH协议,普遍默认是通过用户名和密码认证登录服务器,通过公钥和私钥的方式验证登录。达到面密的效果。

我们要远程登录某台服务器,就需要将我们自己公钥拷贝到远处服务器上。

操作步骤

  1. 在我的服务器上生产一对公钥和私钥

    备注:当前是啥用户就会在用户的当前家目录的/home/xxx/.ssh/生产公钥和私钥

    #1. 生成密钥对
    ssh-keygen -b 1024 -t dsa #一路回车即可,默认在~/.ssh/目录下
    ssh-keygen #也可以不带参数直接生产一对公钥,私钥,会在~/.ssh/ 目录下,会新生成两个文件:id_rsa.pub 和 id_rsa。
    
  2. 将公钥拷贝远程服务器上

    #2. 把生成的密钥文件上传到远程主机
    ssh-copy-id user@host   #第一次拷贝需要输入yes和密码
    
    #3. 确保远程ssh-server端的/etc/sshd_config
    #以下三行没什么要改的,把默认的#注释去掉就行了 
    RSAAuthentication yes 
    PubkeyAuthentication yes 
    AuthorizedKeysFile    .ssh/authorized_keys 
    
    #4. 另外,限制登录设置主要是对hosts.allow与hosts.deny就行改动
    
  3. 在我的服务器上远程登录,已经免密

    ssh 192.168.0.2
    
posted @ 2021-11-23 15:29  penngke  阅读(215)  评论(0编辑  收藏  举报