一、认识 SSH

  • 定义
  1. SSH(Secure shell)安全外壳协议;是建立在应用层基础上的安全协议
  2. 通过 SSH 进行服务端连接,不容易被窃取信息;
  • 连接服务器

    ssh 服务器名 + @ + 服务器 Ip
  • 功能、特点
  1. 可靠,专为远程登录会话和其它网络服务提供安全性的协议;
  2. 有效防止远程管理过程中的信息泄密问题;
  3. 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 是典型的客户端和服务端的交互方式,客户端广泛的支持各个平台;
  • Windows 有很多工具可以支持 SSH 连接功能,如:Xshell、Putty、secureCRT;
  • Linux 平台需要安装客户端软件:openssh-clients(客户端软件)

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

四、SSH 客户端连接 SSH 服务

  • 从个人电脑连接到服务器,使用 Xshell 创建会话,其内部执行的命令:

    命令ssh + 空格 + 服务器名 + @ + 服务器的 IP
  • 退出当前所连接的服务器(回到本地,如果在服务器中又连接了其它服务器,则先退到第一层服务器,在此执行命令则退出到本地电脑):
    命令exit

五、SSH config 命令讲解

 1)config  的功能

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

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

  1. Hostname:一般指 ip;
  2. Port 22:指 22 个端口;

 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. 连接 ip 为“192.168.0.100” 、名称为 root1 的服务器(必须先进入 “~/.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

Linux:远程连接 SSH的更多相关文章

  1. Linux远程连接ssh工具(FinalShell)xshell替代神器

    对对对 FinalShell SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux,版本2.9.8,更新时间2019.6.19 wntr 2017-01-17 11:0 ...

  2. linux 远程连接ssh提示 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY解决

    Linux ssh 远程登录到其他机器上时,有时会出现登不进去,并弹出如下类似提示的情况: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...

  3. linux 远程连接ssh提示IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY解决

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HA ...

  4. ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(一)

    ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(一) 本教程适用于想要在远程服务器上配置docker图形界面用于深度学习的用户. (一)ubuntu18.04配置n ...

  5. Mac电脑远程连接SSH Host key verification failed 解决办法

    苹果电脑远程连接SSH出现如下问题: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@                     ...

  6. Linux远程登录ssh免密码配置方法(仅供参考)

    这篇文章主要介绍了linux远程登录ssh免密码配置方法,需要的朋友可以参考下(http://www.0834-3659999.com) 一.情景 公司刚上几台Linux,现在要把主机之间都能远程ss ...

  7. shell脚本命令远程连接ssh并执行命令

    环境: redhat 6.5 根据网上提供方法,测试了很多写法都不成功,测试了很久才有了以下脚本. 命令远程连接ssh并执行命令,scp/ftp等远程连接操作同理: #!/usr/bin/expect ...

  8. ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(三)

    ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(三) 本教程适用于想要在远程服务器上配置docker图形界面用于深度学习的用户. (三)配置远程桌面连接访问dock ...

  9. ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(二)

    ubuntu18.04配置nvidia docker和远程连接ssh+远程桌面连接(二) 本教程适用于想要在远程服务器上配置docker图形界面用于深度学习的用户. (二)nvidia docker配 ...

  10. Linux远程连接Windows桌面

    Ubuntu对初始用户的界面友好是有目共睹的:Fedora一向以创新.傲慢的姿态示人.其实,对于两者,我虽然更倾向于选择Fedora,但不可避免地会两者比较,发现Ubuntu更加人性化,这点是经过很多 ...

随机推荐

  1. Ubuntu 通过APT安装Tomcat

    Ubuntu 通过APT安装Tomcat 安装 sudo apt-get install tomcat8 tomcat8-docs tomcat8-examples tomcat8-admin # s ...

  2. U盘安装OS

    1. 老毛桃 2. 大白菜 3.

  3. HTML5 ——web audio API 音乐可视化(一)

    使用Web Audio API可以对音频进行分析和操作,最终实现一个音频可视化程序. 最终效果请戳这里; 完整版代码请戳这里,如果还看得过眼,请给一个start⭐ 一.API AudioContext ...

  4. Java class、Object、Class 的区别

    Java的对象模型中: 所有的类都是Class类的实例,Object是类,那么Object也是Class类的一个实例. 所有的类都最终继承自Object类,Class是类,那么Class也继承自Obj ...

  5. Hadoop2.9下运行JAR包时System.out.println的输出日志

    根据博文——Hadoop日志存放路径详解中所述,Container日志包含ApplicationMaster日志和普通Task日志(关于其他类型的日志的详细说明请参考该博文,本文不再赘述) 所以可知, ...

  6. 【poj1195】Mobile phones(二维树状数组)

    题目链接:http://poj.org/problem?id=1195 [题意] 给出一个全0的矩阵,然后一些操作 0 S:初始化矩阵,维数是S*S,值全为0,这个操作只有最开始出现一次 1 X Y ...

  7. PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题

    在你要输出的内容前先输出"\xEF\xBB\xBF",例如:你要输出的内容保存在$content里$content = "\xEF\xBB\xBF".$cont ...

  8. android Handler的使用(二)

     Handler的使用(二) 一. Handler与线程的关系 Handler在默认情况下,实际上它和调用它的Activity是处于同一个线程的. 例如在Handler的使用(一)的示例1中,虽然 ...

  9. 如何限制mongodb数据库内存占用量方法

    多实例下: 可以通过绑定cpu,来防止多实例相互干扰. mongodb的内存也可以限制主,防止全部内存都被一个实例占据. ulimit -s 4096 && ulimit -m 314 ...

  10. Asphyre Sphinx is a cross-platform framework for developing 2D/3D video games and interactive business applications

    Introduction Introduction Asphyre Sphinx is a cross-platform framework for developing 2D/3D video ga ...