zoukankan      html  css  js  c++  java
  • ssh简介和使用

    一、简介

    1. ssh(Secure Shell)是一个安全网络协议

    2.用于远程连接linux服务器

    3. 传输的数据是RSA非对称加密和压缩的

    二、安装

    1. ssh分为服务器和客户端,linux系统默认已经安装

    2. 登录远程机器需要安装客户端 

    sudo apt-get install openssh-client

    3. 开放本机ssh服务需要安装服务器

    sudo apt-get install openssh-server

    三、远程登录

    1. 口令登录

    a. 基本连接命令

    ssh abc@172.1.1.1 连接到服务器默认端口22

    b. 指定端口号连接,因为公网上的机器会被蠕虫搜索,然后用密码字典破解密码,一般都会把端口号改到30000以上,比如36022

    ssh -p 1234 abc@172.1.1.1 连接到服务器端口1234

    2. 公钥登录

    a. 口令登录每次都要输入密码,很不方便

    b. 使用秘钥对进行登录,可以不需要输入密码,安全性也更好

    c. 配置步骤:

    在本机生成秘钥对 ssh-keygen -t rsa,生成一个文件夹.ssh,文件夹下包含私钥id_rsa和公钥id_rsa.pub

    将公钥复制到远程主机,ssh-copy-id aaa@192.168.0.1,ssh-copy-id会把公钥写入远程主机的.ssh/authorized_key文件中

    3. 退出远程登录 Ctrl+D

    4. 通过config配置登录,不用输入用户名和IP地址,更加方便

    a. 在.ssh目录下,新建文件config

    b. 配置

    Host abc // 服务器别名
        HostName 172.168.1.1 // 服务器IP地址 
        User mawr  // 用户名
        Port 22   // 端口号
        IdentityFile ~/.ssh/id_rsa // 私钥文件
        ForwardAgent yes 
        ServerAliveInterval 60 // 保持连接的时间,避免长时间不操作断开连接
        ControlMaster auto
        ControlPath /tmp/ssh_mux_%h_%p_%r
        ControlPersist 72h

    5. 跳过跳板机,直接连接目标服务器

    a. 一般公司是不会让直接连接线上服务器的,需要先连接跳板机,再连接服务器

    b. 每次连接跳板机很不方便,可以通过配置直接登录目标服务器

        Host server-1 server-2 server-3  // 目标服务器列表
        HostName %h // 变量,表示实际IP地址是上面目标服务器的某一个
        User dev  // 用户名
        ProxyCommand ssh jumper nc %h %p // 先登录跳板机,再登录服务器, 也可以ProxyCommand ssh jumper -W %h:%p
        IdentityFile ~/.ssh/id_rsa // 私钥

    四、原理

    1. 服务器启动的时候,自己产生一个公钥

    2. 客户端发送连接请求到服务器,服务器检查IP和数据,如果合法,发送公钥给客户端

    3. 客户端使用公钥和本地的私钥结合成秘钥对,发送给服务器端,建立连接,发送数据

    五、端口转发

    1. ssh -D

    2. ssh -L

    参考:

    https://blog.csdn.net/li528405176/article/details/82810342

    https://www.cnblogs.com/ftl1012/p/ssh.html

    http://blog.shrp.me/How-To-Configure-SSH-Client.html

  • 相关阅读:
    iTerm2分屏快捷键
    k8s中运维/测试常用的命令整理(随时更新)
    httpRunner自动化测试用例使用笔记
    Git学习笔记-快速上手(mac系统)
    RBAC权限控制逻辑笔记
    CPS中有关CICD的配置
    LDAP中filter的使用
    Docker初级入门
    C语言 实现 HashTable
    从三个线程 排队打印 , 到 多个线程打印
  • 原文地址:https://www.cnblogs.com/june0816/p/7160302.html
Copyright © 2011-2022 走看看