1.写在前面的话

  • 用linux系统,肯定少不了使用ssh,为什么?你难道想带着你的u盘从上海跑到北京吗?
  • 如果你只会ssh xxxx@xxxxx或者scp xxxxxx xxxxxx这两条命令的话,我相信你一定不了解ssh里面深层次的东西
  • 那为什么要了解深层次的东西呢?不是会用就可以了吗?因为当你想不用密码就登录服务器或者不输入一长串ip地址的时候,就需要了解这些东西了
  • 本文主要就以上两个情况进行技术分析

2.不用密码登录

  • 每次都要输入密码,太过于繁琐了
  • 要想不用密码登录,就要考虑使用公钥。公钥是什么呢?就是由本地机子生成的,用于本地和服务器之间进行连接的钥匙,而私钥是用于解密从服务器端发送的由公钥加密的信息,反过来,公钥是用于解密本地的由私钥加密的信息。
  • 简单来讲,本地和服务器要想连接起来,就必须互相发一条消息,通过加密解密来相互认证,看是否一致,若一致就同意连接
  • 综上,通过公钥就能实现免密码的过程,因为身份验证的过程已被加密解密过程所替代了
  • 那么,具体怎么操作呢?
  1. 首先,在你的本地运行以下命令,在~/.ssh/下创建一个名叫id_rsa-remote-ssh的密钥,这个密钥包含了两个密钥对,即:① 公钥:id_rsa-remote-ssh.pub ② 私钥:id_rsa-remote-ssh

    ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa-remote-ssh
    

    其中,-f是自己指定创建的密钥名称,如果不指定,会创建一个名为id_rsa的密钥,如果你想为不同的服务器创建不同的密钥,(想要方便管理的话)就要用-f

  2. 然后,将公钥id_rsa-remote-ssh.pub复制到服务器~/.ssh/下,这样就完成了认证文件的传递了

  3. 最后,在服务器上运行:

    cat id_rsa-remote-ssh.pub >> authorized_keys
    

    这样就完成了认证连接啦,下一步就是运行ssh xxxxx@xxxx试试水了

  4. [补]:开始的时候没有注意,忘了修改本地端的id_rsa-remote-ssh.pub文件权限了,怪不得会报出以下警告:

     @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    It is required that your private key files are NOT accessible by others.
    This private key will be ignored.
    

    警告内容无非是说:id_rsa-remote-ssh.pub文件可以被服务器操作,造成安全隐患,所以运行以下代码就可以了:

    sudo chmod 600 id_rsa-remote-ssh.pub
    

    [补]:在服务器端的authorized_keys的权限也要设置为600,不然,仍需要输入密码登录

3.不输入ssh xxx@xxxx

  • 解决了输密码的问题后,还想一步登天------不输入ssh xxx@xxxx中的xxx@xxxx,而是改为自定义的名称,比如iloveai
  • 具体怎么做呢?
  1. 首先,打开~/.ssh/config文件

  2. 然后,在里面添加以下代码:

    Host iloveai
    HostName ------remote ip------
    User i_-------remote username--------
    IdentityFile ~/.ssh/id_rsa-remote-ssh.pub
    
  3. 最后,运行ssh iloveai,看看能不能直接连上吧

  4. [补]: 还没完,做了第4步后,还会提示以下的错误:

    Load key "xxxxxxxx/.ssh/id_rsa-remote-ssh.pub": invalid format
    

    报上面的错误的原因是,ssh的版本问题,我现在用的是高版本的ssh,所以不能在~/.ssh/config下的IdentityFile中写id_rsa-remote-ssh.pub,而应该改为id_rsa-remote-ssh

  5. [补2]: 原来在IdentityFile中写id_rsa-remote-ssh.pub本来就是错误的做法,正确的做法肯定是写id_rsa-remote-ssh,因为在认证的时候,本地给服务器发的就是经过私钥id_rsa-remote-ssh加密的信息,然后在服务器用公钥id_rsa-remote-ssh.pub进行解密

4. 顺便提提http和https吧

  • https就是加密的http,道理和密钥一样
  • http就是一种浏览器和服务器进行通信的一种协议,但是没有密码哦,所以如果你登录采用http协议的网站进行网购的时候,你的个人信息很有可能被第三方截取
  • 那么,https就是在http上增加了密码,这样信息泄露的概率就大大降低了

Linux下使用SSH连接远端服务器技术总结相关推荐

  1. aws linux使用ssh登陆_【Linux】 使用ssh连接远程服务器

    [Linux] 使用ssh连接远程服务器 前言:SSH,英文全称是Secure Shell Protocol(安全的壳程序协议).SSH是现在公司基本上都在使用的一种文字接口的加密传输技术,采用的是非 ...

  2. Mac下使用SSH连接远程Linux服务器

    本文主要介绍三种方法,在Mac下使用SSH连接远程Linux服务器. 方法一:使用终端 1.打开终端,点击新建远程连接 2.点击加号,然后添加自己服务器的IP地址 3.点击右侧的服务器,然后在下方输入 ...

  3. Mac/Linux系统连接远端服务器以及相同IP地址的服务器账号密码重置,ssh失败问题

    连接远端服务器 ssh 账号@IP地址 输入完成之后会提示输入密码,密码输入正确后,就可以连接成功了 重置ssh密钥 如果连接的服务器除了IP地址没有改变,其余的账号.密码.系统等都变了的话,因为曾经 ...

  4. Mac下ssh连接远程服务器时自动断开问题

    在mac下使用securecrt通过ssh连接远程服务器时,总会一段时间没有动作后,ssh被自动断开.在windows下用xmanager貌似没有遇到过这个问题. 在网上找了解决方法如下: 客户端配置 ...

  5. SSH 连接远端 Ubuntu 服务器设置防火墙,实现只允许白名单访问

    SSH 连接远端 Ubuntu 服务器设置防火墙,实现只允许白名单访问 环境情况 需求 实现 需求1-只允许白名单访问 需求2-设置服务器禁止 PING 记录时间:2021/6/25 环境情况 服务器 ...

  6. 【Linux】ssh连接远程服务器

    [Linux]ssh连接远程服务器 1.背景 2.实例 1.背景 Secure Shell(SSH)是一种加密网络协议,用于在不安全的网络上安全地运行网络服务. 利用SSH可以实现加密并安全地远程登录 ...

  7. VSCode 中利用 Remote SSH 连接远程服务器

    北京时间 2019 年 5 月 3 日,在 PyCon 2019 大会上,微软发布了 VS Code Remote.这是一个用来实现远程开发的功能插件,对于许多使用 Windows 进行开发,但是需要 ...

  8. Linux下使用SSH、Crontab、Rsync三工具实现数据自动备份

    Linux下使用SSH.Crontab.Rsync三工具实现数据自动备份 作为网管人员大概都无一例外的经历过系统备份,尤其是重要系统的备份.重要数据库系统的备份工作.由于备份是个频繁而琐碎的工作,如何 ...

  9. Filezilla-使用ssh连接到服务器-上传下载文件

    连接服务器 这里介绍两种ssh连接方式(命令行以及ftp工具Fillzilla) 首先下载安装Fillzilla,安装教程自行百度,这里分客户端跟服务端两个版本. 客户端 我们选择下载客户端(传输文件 ...

最新文章

  1. LeetCode实战:两数之和
  2. 数据中心IT机房末端气流组织管理
  3. Python模块包中__init__.py文件的作用(转载)
  4. 【LeetCode - 32】最长有效括号
  5. 举例说明Java中代码块的执行顺序
  6. 【Java】探究Java数组的本质
  7. 使用 openssl 生成证书
  8. 火爆数字资产Vpay plustoken各种钱包开发,你看中了哪一款?
  9. R语言rank函数详细解析
  10. ubuntu 如何放大终端窗口字体
  11. 【HTML+CSS之小米商城页面图】
  12. 史上最详细SharePoint 2007安装步骤图解新手教程
  13. python出错 unexpected keyword argument 'categories'
  14. 机器学习--岭回归10
  15. JavaWeb项目+MVC三层架构+Mysql+Tomcat+汽车配件销售系统前后端+可以用于学习javaweb项目入门
  16. matlab由两位随机整数构成的矩阵,建立5阶由两位随机整数构成的矩阵A,其语句是( )...
  17. gradle-6.5-all 快速下载
  18. 开关电源为什么要接假负载?答案给你总结好了
  19. 抽奖概率 php_php抽奖概率算法
  20. LightOJ 1319 - Monkey Tradition CRT除数互质版

热门文章

  1. python大作业数独_python做一个数独小游戏
  2. java 字符串常用函数_Java学习笔记35:Java常用字符串操作函数
  3. wps python 自动化_请教下 Python 高手,如何用 Python 自动化操作 Excel?
  4. matlab 写入 MYSQL_阿里开源MySQL中间件Canal快速入门
  5. 静态成员变量以及静态成员函数
  6. 【caffe-windows】 caffe-master 之Matlab中model的分类应用
  7. 实验5.6 定义包含5个元素的对象数组,每个元素都是Employee类型的对象
  8. PAT 乙级1019 数字黑洞
  9. 如何设置Eclipse新建项目的默认编码方式
  10. 【Qt教程】1.10 - Qt5模态与非模态对话框( QDialog)