zoukankan      html  css  js  c++  java
  • Linux ssh远程登陆方式:密码与公钥

    说明

    Linux下有一个远程登陆shell的方法:ssh。只要开启了这个service(sshd),就可以从别的客户机远程登陆(无论是从Linux还是windows)。

    登陆方法有两种:

    • 密码登陆

    • 公钥认证,双方各持公钥,客户机持私钥

    密码登陆

    采用密码登陆只需要服务器开启了sshd服务。可以通过以下方法验证及开启:

    • 在CentOS 7下输入:systemctl status sshd.service验证;status改成start开启

    • 其它低级系统输入:service sshd status 验证。

    Linux系统登陆

    服务器满足条件后,如果客户端是Linux系统,则输入:

    ssh -l root 192.168.11.214 -p 22
    

    解释:

    • -l root 代表用root用户登陆

    • 后面跟ip地址,-p代表端口号,sshd服务的端口号是22

    windows系统登陆

    采用SecureCRT就可以了。

    公钥登陆

    我是采用RSA加密的公钥/私钥。这对秘钥由客户端生成,然后将公钥发给服务端,之后就可以用公钥登陆了。

    服务端设置

    先 vim /etc/ssh/sshd_config ,打开这两个配置:

    RSAAuthentication yes
    PubkeyAuthentication yes
    

    如果想禁止密码登陆,设置:

    PasswordAuthentication no
    

    将客户端发来的公钥追加到~/.ssh/authorized_keys下面(公钥生成见下文):

    cat key.pub >> ~/.ssh/authorized_keys
    echo >> ~/.ssh/authorized_keys  #输入一个回车,以便下次追加从新的一行开始
    

    然后重启sshd服务:

    systemctl restart sshd.service
    # service sshd start
    

    Linux系统登陆

    先生成秘钥:

    ssh-keygen -t rsa
    

    不需要输入密码,连续三次回车生成成功。然后把公钥发给服务端。

    输入登陆命令:

    ssh -l root 192.168.11.214 -p 22
    

    windows系统登陆

    使用SecureCRT生成秘钥:工具->创建公钥,一些关键步骤是:

    • 密钥类型选择RSA

    • 密钥格式选择OpenSSH

    • 可以自定义密钥名

    其余保持默认即可。

    然后把公钥发给服务端。

    之后登陆选项中把公钥登陆勾上就可以了:

  • 相关阅读:
    开发环境之git:团队协作git工作流与常用命令
    js基础梳理-关于this常见指向问题的分析
    Idea 开发环境配置
    Mybatis-generator生成Service和Controller
    分享一个集成在项目中的REST APIs文档框架swagger
    mysql读写分离
    (转)tomcat进程意外退出的问题分析
    shell脚本切割tomcat的日志文件
    (转)Java 详解 JVM 工作原理和流程
    ThreadPoolExecutor-线程池开发的使用
  • 原文地址:https://www.cnblogs.com/demon90s/p/6154875.html
Copyright © 2011-2022 走看看