• Linux学习笔记--SSH免password登录


    须要实现的效果:

    有两台server:"192.168.201.236""192.168.201.237"
    
    须要实现:在server"192.168.201.236"上实现ssh无password连接server"192.168.201.237"

    实现步骤:

    1) 在"192.168.201.236"server上使用"ssh-keygen -t rsa"命令来创建公钥。

    (会问你存放的文件夹,假设不须要改动。直接回车两次就可以,默认保存路径为"~/.ssh/")

    这里写图片描写叙述

    2) 将第一步生成的"~/.ssh/id_rsa.pub"这个文件复制到"192.168.201.237"server的"~/.ssh/"文件夹中并改名为"authorized_keys"

    这里写图片描写叙述

    3) 改动"192.168.201.237"server的"~/.ssh/"文件夹权限为700"~/.ssh/authorized_keys"文件权限为600。
    (这是linux的安全要求,假设权限不正确,自己主动登录将不会生效。)

    这里写图片描写叙述

    4) 在"192.168.201.236"server上用ssh命令连接"192.168.201.237"server。

    (例如以下图。则为连接成功。

    注:30330237serverport。

    )

    这里写图片描写叙述

    可能还会提示输入password的解决方法:

    1) 假设出现报警:"Address X.X.X.X maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!"。
    
    在"192.168.201.236"(连接端)server上运行例如以下命令:
    echo "GSSAPIAuthentication no" >> ~/.ssh/config
    
    在"192.168.201.237"(被连接端)server上运行"vi /etc/ssh/sshd_config"命令。改动以下两项值为"no""GSSAPIAuthentication no" 
    "UseDNS no" 
    2) 假设出现报警:"Agent admitted failure to sign using the key."
    
    运行命令:"ssh-add"(把专用密钥加入到ssh-agent的快速缓存中)
    
    假设还不行,运行命令:"ps -Af | grep agent "
    (检查ssh代理是否开启。假设有开启的话。kill掉该代理)
    然后运行"ssh-agent"(又一次打开一个ssh代理)
    
    假设还是不行,继续运行命令:"sudo service sshd restart"(重新启动一下ssh服务)
    3) 通过命令"/usr/sbin/sestatus -v" 查看SELinux状态,假设"SELinux status"參数为"enabled"(开启状态),则关闭SELinux。
    
    暂时关闭方法(不用重新启动机器):"setenforce 0"
    
    改动配置文件关闭方法(须要重新启动机器):运行命令"/etc/selinux/config",将"SELINUX=enforcing"改为"SELINUX=disabled"
    4) 运行命令"vim /etc/ssh/sshd_config"去掉以下三行的凝视:
    
    "RSAAuthentication yes"
    "PubkeyAuthentication yes"
    "AuthorizedKeysFile      .ssh/authorized_keys"

    SSH免password登录原理:

    这样的方式你须要在clientserver上为自己创建一对密匙,并把公匙放在须要登录的server上。
    当你要连接到server上时,client就会向server请求使用密匙进行安全验证。
    server收到请求之后,会在该server上你所请求登录的用户的家文件夹下寻找你的公匙,
    然后与你发送过来的公匙进行比較。
    假设两个密匙一致,server就用该公匙加密“质询”并把它发送给client。

    client收到“质询”之后用自己的私匙解密再把它发送给server。

    使用场景:

    1) rsync自己主动备份时免password登录;
    2) 集群环境中须要主机间互相通信。
    3) 自己主动部署项目,将编译好的war包放到正确的server上。
  • 相关阅读:
    Mac 卸载MySql的方法
    关于mysql的wait_timeout参数 设置不生效的问题
    linux下利用nohup后台运行jar文件包程序
    MySql创建视图
    spring mvc获取header
    Spring Data Jpa 查询返回自定义对象
    Caused by: org.xml.sax.SAXParseException: The reference to entity "characterEncoding" must end with the ';' delimiter.
    eclipse Reference 功能之——项目之间的引用
    Mac 在启动eclipse时 Failed to load JavaHL Library解决方法
    MySQL Workbench update语句错误Error Code: 1175.
  • 原文地址:https://www.cnblogs.com/llguanli/p/8926998.html
Copyright © 2020-2023  润新知