• linux_ssh


    一、什么是ssh

    简单说ssh是一种网络协议,用于计算机之间的加密登录.如果一个用户从本地计算机,使用ssh协议登录另一个远程计算机,这种登录是安全的,即使中途被截获密码也不会泄漏.

    二、基本用法

    • ssh远程登录
      $ ssh user@host
    • 本地用户名与远程用户名一致,登录时可以省略用户名
      $ ssh host
    • ssh默认端口是22,也就是说,你登录的请求会送进远程主机的22端口,使用p参数,可以修改这个端口
      $ ssh host -p 2222 user@host

    三、中间人攻击

    ssh之所以能够保证安全,原因在于它采用了公钥加密.流程为:

    • 远程主机收到用户登录的请求,把自己的公钥发给用户.
    • 用户使用这个公钥,将登录密码加密后,发送回来.
    • 远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录.

    四、公钥登录

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

    如果没有现成的key,可以直接用ssh-keygen生成一个

    • ssh-keygen 之后可以一路回车.有一个问题是,要不要对私钥设置口令(passphrase),如果担心私钥的安全,这里可以设置一个.运行以后,会在$HOME/.ssh/目录下,会新生成两个文件:id_rsa.pub和id_rsa.前者是你的公钥,后者是你的私钥
    • ssh-copy-id user@host 将公钥传送到远程主机host上面.
    • authorized_keys文件,远程主机将用户的公钥保存在登录后的用户主目录的$HOME/.ssh/authorized_keys文件中,公钥就是一段字符串,只要把它追加在authorized_keys文件的末尾就行了.这里不使用ssh-copy-id命令,使用:$ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub.这条语句由多个语句组成,依次分解开来看:
      • $ ssh user@host 表示远程登录主机

      • 单引号中的mkdir .ssh && cat >> .ssh/authorized_keys,表示登录后在远程shell上执行的命令

      • $ mkdir -p .ssh 的作用是,如果用户主目录中的.ssh 目录不存在,就创建一个

      • 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub的作用是,将本地的公钥文件~/.ssh/id_rsa.pub,重定向追加到远程文件authorized_keys的末尾

        • 如果还是不能免密码登录,打开远程主机的/etc/ssh/sshd_config这个文件,检查下面几行,把注释去掉
        • RSAAuthentication yes
        • PubkeyAuthentication yes
        • AuthorizedKeysFile .ssh/authorized_keys
      • 重启远程主机的ssh服务

        • service ssh restart(ubuntu)/etc/init.d/ssh restart(debian)

    五、.ssh/config配置

    配置config,可以使用该方法连接远程服务器 ssh api3

    • 配置示例:
      Host  api3  
          hostname 120.26.81.70  
          user zongzhen
      
  • 相关阅读:
    HttpMessageNotWritableException: Could not write JSON: No serializer found for class ****
    在线测试且生成文档
    jenkins和gitlab结合的时候出错
    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
    webpack初入
    破网速测试
    SQLDumpSplitter sql文件分割工具
    FTP连接服务器总报错的问题解决
    nw.js---创建一个点击菜单
    nw.js---开发一个百度浏览器
  • 原文地址:https://www.cnblogs.com/zane-zong/p/6807738.html
Copyright © 2020-2023  润新知