远程连接Linux

 

为什么要远程连接Linux

在实际的工作场景中,虚拟机界面或者物理服务器本地的终端都是很少接触的,因为服务器装完系统之后,都要拉倒IDC机房托管,如果是购买的云主机,那更碰不到服务器本体了,只能通过远程连接的方式管理自己的Linux系统。

因此在装好Linux系统之后,使用的第一步应该是配置好客户端软件(ssh软件进行连接)连接Linux系统。

通过什么软件呢?

Xshell
SecureCRT

远程连接必备的知识

ip地址 > 服务器的位置

互联网上的计算机都会有一个唯一的32位的ip地址,如同家里的门牌号,对应到服务器的位置。

我们找人,可以通过身份证号码对应某个人

那我们找到某台服务器,也必须是通过IP地址

局域网

(针对自己班级/家庭所在环境)里也有预留的ip地址,一般是192/10/172开头,局域网的IP地址也是唯一的。

windows查看ip通过命令:

在cmd终端敲下:
ipconfig
查看“以太网适配器 本地连接 IPv4”的Ip地址就是自身网线的ip地址了

Linux查看ip方式:

方式1:ip addr
方式2: ifconfig

外网Ip

全世界哪里都可以访问,

虚拟机网络配置

host only 仅主机 单机模式,了解即可
电脑pc > 皇帝
虚拟机 > 老百姓 老百姓被皇帝控制,无法与外届通信 nat模式(网络地址转换)
电脑pc > 皇帝
nat > 宰相
虚拟机 > 老百姓 老百姓的房子是宰相分配的 与皇帝无关
虚拟机的ip是nat分配的,电脑环境无论怎么变化,都不会影响虚拟机
好处:
在家,在学校,在公司,使用虚拟机,ip地址都不会变化 桥接
电脑pc > 皇帝
虚拟机 > 老百姓
只要更换了一波皇帝,老百姓房子都得换
只要换了个教室,插上网线,ip就变了
好处:不用配置
坏处:更换ip麻烦

NAT模式

电脑宿主机的ip在局域网内是唯一的,选择了NAT模式创建虚拟机,虚拟机就是一个新的局域网

桥接模式

用此模式,就是局域网中一台独立的主机,它可以访问该类网段任意一台机器,

仅主机模式

单机模式

端口的概念

一台服务器可以有一个ip地址,例如是192.168.11.1,服务器是需要对外提供服务的,例如web服务,FTP服务。那么仅凭ip地址,主机无法区分不同的服务,ip地址和网络服务是一对多的关系,一个ip提供多个服务,因此就有了“端口号”来区分不同的服务器的。

端口(port)的设计规定是有65536这么多端口,每个端口对应唯一的程序,0-1024端口之间被操作系统占用,因此开发人员能使用的是1024-65536区间的端口。

ftp:
dns:
http:
https:443
ssh:22

协议的概念

protocol是为网络中的数据交换而建立的规则、标准或者约定,两个实体要通信,必须有同一种语言。

常见协议有超文本传输协议(HTTP)、文件传输协议(FTP),简单邮件传输协议(SMTP)、网络通信协议(TCP)、用户数据报协议(UDP)

总结

ip  ip地址      找人,找服务器  
port 端口号 提供什么服务
protocol 协议 说什么语言

第一次连接Linux

.下载Xshell
.命令:ssh ip (默认22端口)

那么问题来了。。。。

这个黑乎乎的是个什么玩意?

Linux终端也称为虚拟控制台,Linux终端采用字符命令方式工作,用户通过键盘输入命令,通过Linux终端对系统进行控制
Linux是一个多用户、多任务、支持多线程和多CPU的操作系统

Linux切换虚拟终端

ctrl+Alt+F[1~6],如想切换到第二号虚拟终端,则同时按Ctrl+Alt+F2
掌握普通用户登录后系统的提示符:$
掌握root用户登录后系统的提示符:#

查看终端信息shell命令

那么如何查看当前Linux的终端有哪些呢?

命令,解释
tty 查看当前终端
who am i 仅显示当前用户正在使用的终端和登录时间
w 查看所有终端(功能最全,显示用户名,终端标记,登录时间,负载等信息)

配置nat网络

https://www.cnblogs.com/pyyu/p/9689138.html

配置SSHD服务

  SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理 Linux 系统的首选方式。在此之前,一般使用 FTP 或 Telnet 来进行远程登录。但是因为它们 以明文的形式在网络中传输账户密码和数据信息,因此很不安全,很容易受到黑客发起的中 间人攻击,这轻则篡改传输的数据信息,重则直接抓取服务器的账户密码。

  想要使用 SSH 协议来远程管理 Linux 系统,则需要部署配置 sshd 服务程序。sshd 是基于 SSH 协议开发的一款远程管理服务程序,不仅使用起来方便快捷,而且能够提供两种安全验证的方法:

  1. 基于口令的验证-------用账号和密码登录
  2. 基于密钥的验证-------需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较;

超哥之前说过“Linux一切接文件”,也就是在Linux系统中修改服务程序,都得去修改它对应的配置文件,sshd程序的配置文件是/etc/ssh/sshd_config,检查配置文件参数

grep -v '^#' /etc/ssh/sshd_config |grep -v '^$'

在RHEL7系统中,已经默认安装启动了SSHD服务,

使用密码登录

ssh 192.168.12.15

基于口令的认证

1.在第一次登录的时候,系统会出现下面的提示信息:

The authenticity of host 'ssh-server.example.com (12.18.429.21)' can't be established.
RSA key fingerprint is :2e:d7:e0:de:9f:ac:::c2::2d::::4d.
Are you sure you want to continue connecting (yes/no)?

上面的信息说的是:无法确认主机ssh-server.example.com(12.18.429.21)的真实性,不过知道它的公钥指纹,是否继续连接?

输入yes之后,那么该host key会被加入到Client的known_hosts中,格式如下

pyyuc.cn,123.206.16.61 ecdsa-sha2-nistp256....

终端提示如下:

Warning: Permanently added 'ssh-server.example.com,12.18.429.21' (RSA) to the list of known hosts.
Password: (enter password)

提示该host已经被确认,并追加到文件known_hosts中,然后就要输入密码,之后的流程如图

私钥是server端独有的,即使client的信息泄露,也没有私钥进行解密,保证数据安全。

使用安全秘钥

加密是对信息进行编码和解码的技术,它通过一定的算法将原本可以直接阅读的铭文信息转换成密文。密钥就是密文的钥匙,有私钥和公钥之分。

在数据传输时,担心被他人监听或截获,就可以在传输前先使用公钥对数据加密处理,然后再传送。这样只有掌握私钥的用户才能解密这段数据,除此之外的其让人即使截取了数据,也很难将其破解成明文。

基于公钥的免密登录

1.在客户端主机生成“秘钥对”

ssh-keygen   

2.第二步:吧客户端主机中生成的公钥文件传送至远程主机:

3.对服务器端进行设置,使其只能允许秘钥登录,拒绝口令登录,然后重启sshd服务

vim /etc/ssh/sshd_config
PasswordAuthentication no systemctl restart sshd

4.在客户端即可免密登录服务器了

ssh root@123.206.16.61

课后作业

)    开启Linux操作系统,要求以root用户登录GNOME图形界面,语言支持选择为汉语
) 使用快捷键切换到虚拟终端2,使用普通用户身份登录,查看系统提示符
) 使用命令退出虚拟终端2上登录的用户
) 使用快捷键切换到虚拟终端5,使用管理员身份登录,查看系统提示符
) 使用命令退出虚拟终端5上登录的用户
) 切回图形界面,右单击桌面打开终端,输入关闭系统的命令
7)   成功设置服务器免密登录
 

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

  1. Windows远程连接Linux

    目录 xrdp方式 vnc方式 xrdp方式 ----------------------------------------------------------------------------- ...

  2. windows远程连接Linux(Ubuntu)的方法

    需要做的工作: 1.在Linux(Ubuntu)端安装.设置好SSH 2.下载putty,并通过putty的SSH连接登录Linux 一 .如何在Linux(Ubuntu)端安装.设置好SSH,获取I ...

  3. 记一次VNC远程连接Linux问题解决记录(5900端口测试、KDE桌面安装)

    最近几天,到一个项目上安装Linux部署环境.由于服务器在机房,而进机房又比较麻烦,于是选择VNC远程连接Linux就显得自然而然了.以前也用过VNC,而且还经常使用,由于各个项目环境不太一样,这次也 ...

  4. window远程连接linux

    一.字符界面连接Linux    1.直接使用window自带的telnet. 2.但现在Linux一般都不启用telnet,而是启用ssh.这样的话,window就要安装客户端来访问Linux了.这 ...

  5. windows下使用vnc viewer远程连接Linux桌面(转)

    在windows下使用vnc viewer远程连接Linux桌面,主要配置步骤: Linux: 1.rpm -qa vnc //查看是否安装vnc服务,如果没有安装,可以使用yum,或者rpm进行安装 ...

  6. 虚拟机VMware网络类型&&SSH远程连接Linux

    前言: Linux专题是16年11月开始写,说来惭愧,已经5个月没学Linux,至今感觉连入门还没达到.暑假实习有投运维开发岗位,无奈对Linux不熟悉,校招简历也被刷了.so, 我打算先花1个月内的 ...

  7. Sublime 远程连接 Linux服务器

    Sublime是一款强大的编辑器,它的强大体现在它强大的插件. 要实现Sublime 远程连接 Linux服务器,需要使用插件SFTP. 一. 插件安装 用Package Control安装插件按下C ...

  8. Android源码浅析(六)——SecureCRT远程连接Linux,配置端点和字节码

    Android源码浅析(六)--SecureCRT远程连接Linux,配置端点和字节码 需要编译源码的同学,一般都是win+虚拟机吧,但是再虚拟机里体验并不是很好,所有市面上有很多的软件能够做到在wi ...

  9. root密码重置、Linux目录结构和远程连接Linux

    一.root如何重置密码 1. 重启 Linux 系统主机并出现引导界面时,按下键盘上的 e 键进入内核编辑界面 2. 在 linux16 参数这行的最后面追加“rd.break”参数,然后按下 Ct ...

随机推荐

  1. sublime设置tab为四个空格

    在首选项->设置里: 添加: "tab_size": 4, "translate_tabs_to_spaces": true,

  2. Delphi文件目录操作(转载)

    Delphi判断文件夹(目录)是否存在,不存在就创建一个,可以一次创建多级目录 procedure TForm1.Button1Click(Sender: TObject);begin if not ...

  3. swapper_pg_dir主内核页表、init和kthreadd、do_fork时新建子进程页表、vmalloc与kmalloc

    都是以前看到一个点扯出的很多东西,当时做的总结,有问题欢迎讨论,现在来源难寻,侵删! 1.Init_task.idle.init和kthreadd的区别和联系 idle进程其pid=0,其前身是系统创 ...

  4. 4A Watermelon

    A. Watermelon time limit per test 1 second memory limit per test 64 megabytes input standard input o ...

  5. MySQL插入更新_ON DUPLICATE KEY UPDATE

    前提:操作的表具有主键或唯一索引 INSERT INTO:表中不存在对应的记录,则插入:若存在对应的记录,则报错: INSERT INTO IGNORE:表中不存在对应的记录,则插入:若存在对应的记录 ...

  6. 使用查询分析器和SQLCMD分别登录远程的SQL2005的1434端口

    SQLCMD是操作SQLSERVER的一个命令行工具, 而查询分析器是它的图形工具     查询分析器(SQL2005下叫managerment studio),连接远程的SQLSERVER2005, ...

  7. ethtools命令详解

    1 概述 ethtool 是用于查询及设置网卡参数的命令. 2 命令详解 2.1 命令格式 (1) 语法 ethtool [ -a | -c | -g | -i | -d | -k | -r | -S ...

  8. linux 安装nginx+php+mysql

    http://www.cnblogs.com/kyuang/p/6801942.htmlnginx安装 本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g++ 开发库 ...

  9. Docker Kubernetes Volume 本地数据卷

    Docker Kubernetes Volume 本地数据卷 emptyDir 当Pod分配到Node时,首先创建一个空卷,并挂载到Pod中的容器. Pod中的容器可以读取和写入卷中的文件. 当Pod ...

  10. Python 简单soket例子

      简单的soket例子 Python 2.0 客户端服务端传输 1.可发字符串,可发字节 bys类型 Python 3.0 客户端服务端传输 1.只能发bys,比特流的类型. 2.bys类型只能接收 ...