Linux网络服务三:SSH 远程连接

1.SSH概述

1.1什么是SSH

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能

1.2ssh的特点

安全性: 数据传输是加密的,可以防止信息泄漏。

身份验证:防止未经授权的用户访问远程系统。

远程管理:可通过SSH协议登录远程服务器并执行命令,无需直接物理访问设备。

端口转发:SSH支持 端口转发功能,可以安全地传输其他协议和应用程序。

传输速度: 数据传输是压缩的,可以提高传输速度。

SSH具有强大的安全性、身份验证和远程管理功能,使得它成为远程访问和管理计算机系统的首选协议

1.3 OpenSSH

1.3.1 概念

OpenSSH是通过SSH协议实现的一套用于远程登录和文件传输的工具,包括SSH客户端(SSH)和SSH服务器(sshd)。

Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。

1.3.2所含软件包

服务名称:sshd
服务端主程序:/usr/sbin/sshd
服务端配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh.config

1.4ssh远程连接原理

在这里插入图片描述

在这里插入图片描述

  • 客户端发起链接请求

  • 服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)

  • 客户端生成密钥对

  • 客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密

  • 客户端发送加密值到服务端,服务端用私钥解密,得到Res

  • 服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)

  • 最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密

3.ssh登录方式

3.1第一种方式

ssh [远程主机用户名]@[远程服务器主机名或IP地址] -p 
### -p 指定端口号


ssh 192.168.67.101

在这里插入图片描述

3.2第二种方式

ssh -l [远程主机用户名] [远程服务器主机名或IP 地址]
###-l 指定登录名

ssh -l root 192.168.67.101

在这里插入图片描述

3.3第三种方式:远程控制

ssh [远程登录主机名]  [命令]

ssh 192.168.67.101 ls

在这里插入图片描述

4.服务端配置

[root@ky15-1 ~]# vim /etc/ssh/sshd_config 
17  Port    22   
#生产建议修改   

ListenAddress ip
#监听地址设置SSHD服务器绑定的IP 地址,0.0.0.0 表示侦听所有地址安全建议:如果主机不需要从公网ssh访问,可以把监听地址改为内网地址 这个值可以写成本地IP地址,也可以写成所有地址,即0.0.0.0 表示所有IP。

LoginGraceTime 2m
#用来设定如果用户登录失败,在切断连接前服务器需要等待的时间,单位为秒

PermitRootLogin yes 
#默认 ubuntu不允许root远程ssh登录

StrictModes yes   
#检查.ssh/文件的所有者,权限等

MaxAuthTries 
#用来设置最大失败尝试登陆次数为6


MaxSessions  10         
#同一个连接最大会话
PubkeyAuthentication yes     
#基于key验证

PermitEmptyPasswords no      
#密码验证当然是需要的!所以这里写 yes,也可以设置为 no,在真实的生产服务器上,根据不同安全级别要求,有的是设置不需要密码登陆的,通过认证的秘钥来登陆。


PasswordAuthentication yes   
#基于用户名和密码连接
GatewayPorts no
ClientAliveInterval 10 
#单位:秒
ClientAliveCountMax 3 
#默认3
UseDNS yes 
#提高速度可改为no   内网改为no  禁用反向解析
GSSAPIAuthentication yes #提高速度可改为no
MaxStartups    #未认证连接最大值,默认值10
Banner /path/file
#以下可以限制可登录用户的办法:白名单  黑名单
AllowUsers user1 user2 user3@ip(限制主机)
DenyUsers user1 user2 user3
AllowGroups g1 g2
DenyGroups g1 g2

5.免密登录

5.1远程登录的方式

5.1.1基于密码登录

原理:

  1. 客户端发起ssh请求,服务器会把自己的公钥发送给用户

  2. 用户会根据服务器发来的公钥对密码进行加密

  3. 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功

5.1.2 基于密钥登录

在这里插入图片描述

  1. 首先在客户端生成一对密钥(ssh-keygen)

  2. 并将客户端的公钥ssh-copy-id 拷贝到服务端

  3. 当客户端再次发送一个连接请求,包括ip、用户名

  4. 服务端得到客户端的请求后,会到authorized_keys()中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:kgc

  5. 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端

  6. 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端

  7. 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录

示例:
1.生成密钥
ssh-keygen

在这里插入图片描述
在这里插入图片描述

2.将公钥文件导入对方用户

在这里插入图片描述

3.查看是否能够免密登录

在这里插入图片描述
成功

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SSH(Secure Shell)是一种加密的远程连接工具,可以在客户端与远程服务器之间建立安全的连接。使用 SSH 连接 Linux 服务器需要在客户端使用 SSH 客户端软件,在服务器上安装并配置 SSH 服务。 连接步骤如下: 1. 在客户端打开终端,输入 ssh 用户名@服务器IP地址 2. 系统会提示你输入密码,输入正确的密码即可连接成功 需要注意的是,连接前要确保服务器已经开启了 ssh 服务。 ### 回答2: ssh是一种远程登录协议,它能够提供一个安全的加密连接,使得用户可以在不用亲自到服务器上的情况下,通过网络和远程主机进行交互。ssh通常被用来在命令行窗口中连接远程linux服务器、管理远程主机、传输文件等操作。 要使用ssh连接远程linux服务器,首先需要确定目标服务器的IP地址和登录用户名。然后在命令行中输入 ssh username@remotehostipaddress,并确认是否连接成功。如果成功连接,之后就可以输入远程机的密码进行远程操作。 在建立ssh连接时,ssh会自动对传输的数据进行加密处理。另外,ssh还可以实现远程端口映射、ssh隧道、ssh跳板等功能,以帮助用户进行更高级别的远程操作。 虽然ssh是一种安全、可靠的远程连接方式,但在使用时还需要注意一些问题。比如,需要确保远程服务器ssh服务已开启;尽量使用随机密码或使用SSH key对进行验证等。同时还需要定期更新ssh软件,定期修改密码等,以确保连接的安全性和稳定性。 ### 回答3: SSH是Secure Shell的缩写,它是一种加密安全协议,可以实现远程连接服务器的功能。SSH协议在数据传输的过程中是加密的,确保了连接的安全性。因此,在进行Linux服务器管理、运维等操作时,通常需要使用SSH协议进行远程连接。在本文中,我们将详细介绍如何通过SSH远程连接Linux服务器SSH协议的使用 在Linux服务器中,SSH协议是最常用的远程连接协议。首先需要确认服务器上是否安装了OpenSSH,OpenSSHSSH协议的一种。我们可以通过运行以下命令来确认是否安装了OpenSSH: ``` $ systemctl status sshd ``` 在终端中输入上述命令,如果服务器上已经安装了OpenSSH,那么会显示sshd服务正在运行。否则,则需要通过命令安装OpenSSH。在Ubuntu系统上,可以通过以下命令安装OpenSSH: ``` $ sudo apt-get install openssh-server ``` 在CentOS系统上,可以通过以下命令安装OpenSSH: ``` $ sudo yum install openssh-server ``` 安装完成后,需要启动ssh服务以及设置开机自启动: ``` $ sudo systemctl start sshd $ sudo systemctl enable sshd ``` 使用SSH远程连接Linux服务器 在安装完OpenSSH之后,就可以使用SSH协议远程连接Linux服务器了。在Windows系统上,需要使用SSH客户端工具进行连接,在Linux和MacOS系统上,可以使用终端进行连接。以下是在Linux和MacOS系统上连接SSH命令: ``` $ ssh username@ip_address ``` 其中,username为连接的用户名,ip_address为连接的服务器IP地址。在输入命令后,会提示输入用户密码。当连接成功后,就可以在终端中输入命令,执行相关操作了。 使用SSH远程连接Linux服务器有很多好处,比如可以方便地在本地终端操作和管理服务器,也可以在不同的地方快速连接到相同的服务器,避免重新配置环境。但是需要注意的是,SSH协议虽然可以保证数据传输的安全性,但是如果密码泄露,仍然会带来风险。因此,建议在使用SSH协议连接服务器时,使用SSH密钥对进行认证,以提高安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值