zoukankan      html  css  js  c++  java
  • SSH 密钥登录

    一、什么是SSH?

    简单说,SSH是一种网络协议,用于计算机之间的加密登录。

    如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。

    最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。

    需要指出的是,SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文针对的实现是OpenSSH,它是自由软件,应用非常广泛。

    此外,本文只讨论SSH在Linux Shell中的用法。如果要在Windows系统中使用SSH,会用到另一种软件PuTTY,这需要另文介绍。

    使用密码登录,每次都必须输入密码,非常麻烦。好在SSH还提供了公钥登录,可以省去输入密码的步骤。

    所谓"公钥登录",原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。

    这种方法要求用户必须提供自己的公钥。如果没有现成的,可以直接用ssh-keygen生成一个

    二、密钥登录

    1.本地机器生成密钥 ssh-keygen -t rsa   //这里采用rsa算法

    # 通过 ssh-keygen 可以生成需要的证书 
    # 根据提示一路按 RETURN(ENTER) 即可 
    # 默认情况下会生成 id_rsa 和 id_rsa.pub 
    # id_rsa 为私钥,id_rsa.pub 为公钥 
    ssh-keygen -t rsa

    2.把本地copy到远程服务器:

    ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.85.163

    3.查看是否copy成功,登录到远程服务器上查看authorized_keys文件中是否有了上传的公钥

    vi /root/.ssh/authorized_keys

    4.修改修改 SSH 配置文件

     vi /etc/ssh/sshd_config

      去掉下面前面的注释符

       RSAAuthentication yes
      PubkeyAuthentication yes
      AuthorizedKeysFile .ssh/authorized_keys

    5.重启ssh服务

    # RHEL/CentOS 系统 
    service sshd restart
    # Ubuntu 系统 
    service ssh restart
    # Debian 系统 
    /etc/init.d/ssh restart

    6.启动服务后报错

    [root@Server-rm8glb ssh]# service sshd restart
    Redirecting to /bin/systemctl restart sshd.service
    Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.

     或者使用sshd -t 查看错误原因和systemctl status sshd.service效果类似:找到原因后,把相关的配置注释掉即可

    7.查看sshd服务状态

    systemctl status sshd.service

    参考:http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html

  • 相关阅读:
    SQL之mysql常用操作语句(入门级)
    总结了一些指针易出错的常见问题(七)
    C++之类和对象课后习题1
    SQL之50个常用的SQL语句
    SQL之经典SQL语句大全
    C语言之计算字符串最后一个单词的长度,单词以空格隔开
    spring之HttpInvoker
    Java之解压流(ZipInputStream)
    jetty之嵌入式开发
    java之压缩流(ZipOutputStream)
  • 原文地址:https://www.cnblogs.com/guanbin-529/p/12629990.html
Copyright © 2011-2022 走看看