• Linux:远程连接 SSH


    一、认识 SSH

    • 定义
    1. SSH(Secure shell)安全外壳协议;是建立在应用层基础上的安全协议
    2. 通过 SSH 进行服务端连接,不容易被窃取信息;
    • 连接服务器
      ssh 账号名 + @ + 服务器 Ip
    • 功能、特点
    1. 客户端与服务器端的通讯协议;客户端通过该协议连接服务器端更加安全,不容易被第三方窃取
    2. 可靠,专为远程登录会话和其它网络服务提供安全性的协议;
    3. 有效防止远程管理过程中的信息泄密问题;
    4. SSH 是典型的客户端和服务端的交互模式;
    • 交互模式

    1. 客户端:社交软件 QQ、微信等,是客户端与服务端的交互;
    2. 网页端:浏览器是网页端与服务器的交互方式;
    • 应用
    1. SSH 客户端适用于多种平台;
    2. SSH 服务端几乎支撑所有 UNIX 平台;

    二、服务器安装 SSH 服务

    • 在服务器的操作系统上安装 SSH 安全协议:openssh-server(服务端软件)
    • ps -ef |grep + 应用名:查看应用进程;

     1)步骤

    • 安装 SSH
      yum install openssh-server
    • 启动 SSH
      service sshd start
    • 重新启动
      service sshd restart
    • 设置开机运行
      chkconfig sshd on
    • CentOS 是服务器版本的操作系统,已经默认集成安装好了 openssh-server
    • 一般桌面化的操作系统(带有可视化功能),都没有安装 SSH 协议,需要手动通过界面到操作系统后进行安装;
    • 一般服务器版本的操作系统没有可视化功能;

    三、客户端安装 SSH 工具

    • 客户端也必须安装 SSH 才能连接服务端;
    • SSH 是典型的客户端和服务端的交互方式,客户端广泛的支持各个平台;
    • Windows 有很多工具可以支持 SSH 连接功能,如:Xshell、Putty、secureCRT;
    • Linux 平台需要安装客户端软件:openssh-clients(客户端软件)

      yum install openssh-clients
    • 客户端上只有安装了 SSH 协议,才能连接到服务器上

    四、SSH 客户端连接 SSH 服务

    • 从个人电脑连接到服务器,使用 Xshell 创建会话,其内部执行的命令:
      命令ssh + 账号 + @ + 服务器的 IP
      例:ssh root@192.168.108.129
    • 退出当前所连接的服务器(回到本地,如果在服务器中又连接了其它服务器,则先退到第一层服务器,在此执行命令则退出到本地电脑):
      命令exit

    五、SSH config 命令讲解

    • Ctrl + C:终止当前的命令;(按住 “Ctrl + C” 键后,在按 Enter 键当前命令不再执行)

     1)config  的功能

    • 通过 config 文件 ,批量管理多个服务器

    • config 文件存放在地址: ~/.ssh/
    • config 文件的配置语法
    • config 文件的内容:配置管理一台服务器

    1. Hostname:一般指 ip;
    2. Port 22:指 22 个端口;
    3. IdentityFile:config 文件的存放地址;

     2)通过 config 文件管理多个服务器

    • 可以直接通过 mogo 名称连接 HostName 对应的 ip 服务器
    • 在地址 “~/.ssh/” 下创建 config 文件:(该文件名必须是 config
    • config 文件中的每一个 host 表示一个服务器,config 文件中设置多个 host ,则可以通过config 文件管理多个服务器

    • 创建步骤:

    1. 进入指定地址
      cd ~/.ssh/
    2. 创建文件
      touch config
    3. 编辑文件:
      命令一vim config
      命令二i
      :编辑 2 台服务器的内容
      host "imooc1"
          HostName 192.168.0.100
          User root1
          Port 22

      host "imooc2"
          HostName 192.168.0.101
          User root2
          Port 22
      命令四:wq
    4.  使用账号 root1,连接 ip 为“192.168.0.100” 的服务器(必须先进入 “~/.ssh/” 地址位置

      命令一:cd ~/.ssh/
      命令二:ssh imooc1

     六、SSH 免密登录

     1)简介

    • ssh key :一种加密方式,使用非对称解码方式生成共钥和私钥;
    1. 私钥存放在本地目录:~/.ssh
    2. 公钥可以对外公开,放在服务器的 authorized_keys 文件内:~/.ssh/authorized_keys
    • 当公钥放在服务器的 authorized_keys 文件内后,登录服务器不需要再输入密码

      2)Linux 平台下使用 ssh key 生成加密文件

    • 不同的加密算法对应不同的生成方式:Linux系统的生成方式
    1. 进入指定目录
      cd ~/.ssh
    2. 方式一
      ssh-keygen -t rsa
    3. 方式二
      ssh-keygen -t dsa
    •  在秘钥文件夹内,“.pub” 文件为公钥,不带 “.pub” 的文件内为私钥内容

     3)Windows 品台下,使用 Xshell 中的 ssh key 生成加密文件

    • 在 Xshell 软件下:工具——新建用户秘钥生成导向——秘钥类型 RSA——下一步——设置秘钥名称以及需要加密的密码(也就是服务器密码)——完成

     4)Windows 平台下,Xshell 软件使用加密文件

    1. 进入指定目录:
      cd ~/.ssh
    2. 创建 authorized_keys 文件
      touch authorized_keys
    3. 编辑 authorized_keys 文件,将使用 ssh key 加密方式把服务器密码生成的公钥添加到文件内
      vim authorized_keys
    • 从 Windows 系统再次使用 Xshell 连接到服务器时,不需要再次输入服务器密码

     5)Linux 平台下使用加密文件

    •  思路
    1. 公钥内容放在服务器的 “~/.ssh” 目录下的 “authorized_keys” 文件内;
    2. 将私钥文件加载到 “~/.ssh” 目录下
      # 将私钥 “imooc_rsa” 加载到本地空间中
      ssh-add ~/.ssh/imooc_rsa
    • 从 Linux 系统进入服务器时,不再需要输入服务器密码;

     6)端口安全

    • 端口安全指的是尽量避免服务器的远程连接端口被不法分子知道,为此而改变默认服务端口的操作;
    • SSH 的默认端口是 22 端口;
    • http 的默认端口是 800;
    • https 的默认端口是 43;
    • 通过协议的端口可以连接服务器;
    • 修改 SSH 服务端口:修改 /etc/ssh/sshd_config 的配置
    1. 一般不将端口:Port 22 删除,而是添加一个端口,让 SSH 服务同时监听两个端口;
    2. 直接编辑 config 文件,添加一个新端口:Port 10086
      vim /etc/ssh/sshd_config

       

    3. 重启 SSH 服务
      service sshd restart
  • 相关阅读:
    Android 获取内存信息
    Android上基于libgdx的游戏开发资料
    Android使用http协议与服务器通信
    Android 下载zip压缩文件并解压
    2014年终总结
    OSG 坑爹的Android example
    支持Android 的几款开源3D引擎调研
    利用Android NDK编译lapack
    Django 中实现连接多个数据库并实现读写分离
    Git之多人协同开发
  • 原文地址:https://www.cnblogs.com/volcao/p/9513035.html
Copyright © 2020-2023  润新知