Linux配置SSH远程登录管理

这篇具有很好参考价值的文章主要介绍了Linux配置SSH远程登录管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、SSH协议

1.SSH简介

2.SSH的优点

3.SSH远程控制软件及服务

二、SSH远程管理配置

1.配置OpenSSH服务端

2.使用SSH客户端软件

(1)SSH远程登录

(2)scp远程传输文件

3.SSH登录验证的两种验证方式

(1)密码验证

(2)密钥对验证


一、SSH协议

1.SSH简介

        SSH 为 Secure Shell的缩写, 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

2.SSH的优点

  • 数据加密
  • 数据压缩(提高传输速率)

        传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的, 就是很容易受到“中间人”这种方式的攻击。

        通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。

        使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,又可以为ftp、PoP、甚至为PPP提供一个安全的"通道"

3.SSH远程控制软件及服务

SSH客户端:Putty、Xshell、CRT、MobaXterm

用于远程连接主机的软件,企业一般使用Putty这类开源软件。

SSH服务端: OpenSSH

OpenSSH是实现 SSH协议的开源软件项目,适用于各种UNIX、Linux操作系统。Centos 7系统默认已安装openssh相关软件包,并已将sshd 服务添加为开机自启动。

sshd服务

sshd服务默认使用的是TCP的22端口。

sshd服务的默认配置文件在/etc/ssh下,ssh_config是针对客户端的配置,sshd_config是针对服务端的配置。

二、SSH远程管理配置

1.配置OpenSSH服务端

服务端配置文件sshd_config常用字段及解释

字段 解释
Port 22

监听端口(默认22)

ListenAddress 0.0.0.0 监听ipv4地址网段(默认全网段)
LoginGraceTime 2m 登录验证超时时间 2分钟
PermitRootLogin no 禁止root用户登录
MaxAuthTries 6 最大重试次数 6次
MaxSessions 10 最大支持会话数量 10个
PermitEmptyPasswords no 禁止空密码用户登录
UseDNS no 禁用DNS反向解析(提高服务器响应速度)

AllowUsers 用户1 用户2...

DenyUsers 用户1 用户2...

允许或禁止某用户登录(多个用户用空格隔开)

注:这两条字段选其一,不能同时使用

上一条用户名后加上@12.0.0.1 与上一条实现允许或禁止用户只能在指定ip的主机上登录

2.使用SSH客户端软件

(1)SSH远程登录

[root@localhost1 ~]# ssh [-p 端口号] [用户名@]服务端ip         // 远程登录指定服务端

-p 指定远程登录的端口,不写默认使用22端口

ip前加上"用户名@"指定登录的用户,不写默认使用当前用户

[root@localhost2 ~]# exit            //使用exit命令退出登录

//使用root用户登录192.168.116.20主机
[root@localhost1 ~]#ssh -p 22 root@192.168.116.20
The authenticity of host '192.168.116.20 (192.168.116.20)' can't be established.
ECDSA key fingerprint is SHA256:BhhxtVT0Hy+tIQ4bMqAvyKJUBldEolUbURl/42FYg4o.
ECDSA key fingerprint is MD5:a0:5b:4f:33:31:ef:38:01:31:3b:b4:14:ad:a1:23:29.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.116.20' (ECDSA) to the list of known hosts.
root@192.168.116.20's password: 
Last login: Tue Aug 16 09:09:20 2022
'abrt-cli status' timed out

//登录成功
[root@localhost2 ~]#

//退出登录
[root@localhost2 ~]#exit
登出
Connection to 192.168.116.20 closed.

//回到本机
[root@localhost1 ~]#

注:当用户第一次登录ssh服务器时,必须接受服务器发来的ECDSA密钥(根据提示输入"yes")后才能继续验证。接收的密钥信息将保存到~/. ssh/know_hosts文件中。密码验证成功以后,即可登录目标服务器的命令行环境中。

//刚刚登录时收到的密钥
[root@localhost1 ~]#cat .ssh/known_hosts 
192.168.116.20 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBCBhY9r8mXXzHMu2IMqVnvgW99vU8Xnio3MpUrkYwbrzfzXG37IiWriziEwIMm5c8XlS+q/iIj8Cdm+drMB6REk=

(2)scp远程传输文件

上传文件(客户端传到服务端)

[root@localhost1 test]# scp [-P 端口号] 文件名 [用户名@]服务端ip:上传到的目录

-P 指定远程登录的端口,不写默认使用22端口

-r 目录 递归传输目录

ip前加上"用户名@"指定登录的用户,不写默认使用当前用户

//首先创建文件夹用于scp上传
[root@localhost1 /]#mkdir -p /data/test
[root@localhost1 /]#cd /data/test/
[root@localhost1 test]#touch 1.txt

//使用root用户scp递归将/data目录上传到服务端的/root目录下
[root@localhost1 test]#scp -P 22 -r /data root@192.168.116.20:/root
root@192.168.116.20's password: 
1.txt                                    100%    0     0.0KB/s   00:00    

//进入服务机,发现家目录多了data目录
[root@localhost2 ~]#ls
anaconda-ks.cfg  initial-setup-ks.cfg  模板  图片  下载  桌面
data             公共                  视频  文档  音乐


//查看这个data目录,确认是scp上传过来的
[root@localhost2 ~]#cd data
[root@localhost2 data]#tree
.
└── test
    └── 1.txt

1 directory, 1 file

下载文件(从服务端下载到客户端) 

[root@localhost1 test]# scp [-P 端口号] [用户名@]服务端ip:文件路径 保存到本地的路径

-P 指定远程登录的端口,不写默认使用22端口

-r 目录 递归传输目录

ip前加上"用户名@"指定登录的用户,不写默认使用当前用户

//在服务端新建测试文件
[root@localhost2 ~]#touch test.txt
[root@localhost2 ~]#ls
anaconda-ks.cfg       test.txt  模板  图片  下载  桌面
initial-setup-ks.cfg  公共      视频  文档  音乐

//以root用户scp远程下载服务端的test.txt到/data目录下
[root@localhost1 ~]#scp -P 22 root@192.168.116.20:/root/test.txt /data
root@192.168.116.20's password: 
test.txt                                      100%    0     0.0KB/s   00:00    

//查看发现获取成功
[root@localhost1 ~]#ls /data
test.txt

3.SSH登录验证的两种验证方式

(1)密码验证

对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解

        默认情况下,远程连接都是使用的密码验证,即需要输入登录用户的密码。

(2)密钥对验证

要求提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证。能增强安全性,且可以免交互登录。

公钥和私钥的关系:

  • 公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密。
  • 不能根据一个密钥来推算出另一个密钥(非对称密钥)。
  • 公钥对外公开,私钥只有私钥的持有人才知道。

SSH密钥对验证过程:

Linux配置SSH远程登录管理

配置使用密钥对验证登录

1.生成密钥对

[root@localhost1 ~]#ssh-keygen  [-t 加密算法]   //生成密钥对

-t  指定加密算法(rsa、dsa、ecdsa等)

//生成密钥对(使用dsa加密算法)
[root@localhost1 ~]#ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):    --指定密钥对文件位置(默认当前用户家目录的.ssh/下)
Enter passphrase (empty for no passphrase):    --是否给密钥对设置密码(为空则不指定)
Enter same passphrase again:      --指定后需要重输密码校验
Your identification has been saved in /root/.ssh/id_dsa.   --私钥位置
Your public key has been saved in /root/.ssh/id_dsa.pub.   --公钥位置
The key fingerprint is:
SHA256:vjGR6YAff/Nah7t+m1Ou6C0YWcrvUZaZ0tRQ5tpGVdg root@localhost1
The key's randomart image is:
+---[DSA 1024]----+
|              .+*|
|              .=E|
|              . +|
|     .   o  .o B |
|    . o S. +. O o|
|     . * .=  = ..|
|      . * o++ .o |
|         =.+o*o..|
|        . .=O+=+ |
+----[SHA256]-----+

[root@localhost1 ~]#ls .ssh/
id_dsa  id_dsa.pub  known_hosts

2.1将公钥发送给服务器(手动)

//查看公钥文件
[root@localhost1 ~]#cat .ssh/id_dsa.pub  
ssh-dss AAAAB3NzaC1kc3MAAACBAI9yxdO7V/W/ATYiSoKz4MbWZDRpE902lBpH0i5dmghNwWAxqV0DRMjetyvUc+R466NdXmp7N32ARuj+wEMNZ73g3FdurzkhwRmGi8RhR9obYkL3cqS34dmQvAWAlYmNYfqIg8Z2nv9KLwCrsnKfJDevlgmjpyj+Bxzx0smpIq/TAAAAFQDUYT4psdnG+JAUJfUhTCBz5AivsQAAAIAVLo/baTi/Z/xDod4N+bLwDYylsGKyWUuB8pTsMz/IPBH6KWPMWB62H9cO4rXhX2VQsKQXFBv77gqhpqzCB0iqQvc1DOHNXIp33tRlOvLntTYR02jduFnMtw9XyKjpIRaQmON3JY97liYL9zqP4Dd2RwSbPvSAhCPgWWL6lEX7awAAAIB8ad42MTdKzRVhZ3wu6KBmvn0LmeiX0NO5WQcPoOfwSqH7hCbhV2Dy+BfM3OklL6I3HesTajtuyLy6UBL83ayrvl8AXO0y7NCPOuZCm59YYXF8SE7pQz7JZBFyA9jTm9Ba4W0rrwHo3x1OkYXFd5LQowO71k/KKuWGQMGssR8Uiw== root@localhost1

//在服务端当前用户家目录下的.ssh下创建authorized_keys(用于存放公钥)
[root@localhost2 ~]cd .ssh
[root@localhost2 .ssh]#vim authorized_keys
将之前生成的公钥复制进这个文件

2.2将公钥发送给服务器(自动)

[root@localhost2 ~]# ssh-copy-id -i 公钥文件  用户@服务端ip  

//使用命令自动传送公钥文件,会自动生成authorized_keys文件
[root@localhost1 ~]#cd .ssh
[root@localhost1 .ssh]#ssh-copy-id -i id_dsa.pub root@192.168.116.20

//查看一下
[root@localhost2 ~]#cd .ssh
[root@localhost2 .ssh]#ls
authorized_keys  known_hosts
[root@localhost2 .ssh]#cat authorized_keys 
ssh-dss AAAAB3NzaC1kc3MAAACBAI9yxdO7V/W/ATYiSoKz4MbWZDRpE902lBpH0i5dmghNwWAxqV0DRMjetyvUc+R466NdXmp7N32ARuj+wEMNZ73g3FdurzkhwRmGi8RhR9obYkL3cqS34dmQvAWAlYmNYfqIg8Z2nv9KLwCrsnKfJDevlgmjpyj+Bxzx0smpIq/TAAAAFQDUYT4psdnG+JAUJfUhTCBz5AivsQAAAIAVLo/baTi/Z/xDod4N+bLwDYylsGKyWUuB8pTsMz/IPBH6KWPMWB62H9cO4rXhX2VQsKQXFBv77gqhpqzCB0iqQvc1DOHNXIp33tRlOvLntTYR02jduFnMtw9XyKjpIRaQmON3JY97liYL9zqP4Dd2RwSbPvSAhCPgWWL6lEX7awAAAIB8ad42MTdKzRVhZ3wu6KBmvn0LmeiX0NO5WQcPoOfwSqH7hCbhV2Dy+BfM3OklL6I3HesTajtuyLy6UBL83ayrvl8AXO0y7NCPOuZCm59YYXF8SE7pQz7JZBFyA9jTm9Ba4W0rrwHo3x1OkYXFd5LQowO71k/KKuWGQMGssR8Uiw== root@localhost1

3.重新使用ssh远程登录服务端,会提示使用密钥验证登录(如果为密钥设置了密码,还需要输入密钥的密码)

 Linux配置SSH远程登录管理

补充:免交互登录

  • 公钥文件设置了密码

        服务端导入公钥文件后,建立ssh代理(此方式只在当前连接有效)

[root@localhost1 ~]#ssh-agent bash
[root@localhost1 ~]#ssh-add
Enter passphrase for /root/.ssh/id_dsa: 
Identity added: /root/.ssh/id_dsa (/root/.ssh/id_dsa)
  • 公钥文件未设置密码(密码为空)

        这种情况可以在密钥验证后直接登录文章来源地址https://www.toymoban.com/news/detail-469194.html

到了这里,关于Linux配置SSH远程登录管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux Debian11服务器安装SSH,创建新用户并允许SSH远程登录,及SSH安全登录配置

    一、在 Debian 中添加 sudo 用户 1.创建新用户 首先,要创建用户,当前用户必须是 root 用户或者 sudo 用户。 使用下面adduser 命令创建一个用户名为test的sudo用户,按照提示输入密码,使用 adduser 命令,还会创建用户的主目录。 sudo adduser test 2.将用户成为 sudo 用户 创建test用户后,

    2024年02月05日
    浏览(67)
  • Linux Debian11服务器安装SSH,创建新用户并允许SSH远程登录,及SSH安全登录配置!

    在Debian 11服务器上安装SSH并创建新用户允许SSH远程登录的步骤如下: 步骤1:安装SSH 为了安装SSH服务器,您需要以root用户或具有sudo特权的用户身份登录到您的Debian 11服务器。 在终端中执行以下命令来安装SSH服务器: 步骤2:创建新用户 要创建一个新用户,您可以使用  add

    2024年02月12日
    浏览(54)
  • Windows服务器管理技巧:多用户登录设置、开启防火墙与SSH远程登录配置指南

    WindowsServer服务器管理技巧:对于使用WindowsServer服务器开发人员或者运维人员初学者来说,可能会遇到很多问题,比如:如何设置允许多用户同时登录服务器?如何开启服务器防火墙?Windows如何配置SSH远程登录?等等,如果遇到了这些问题,来看看这篇文章就能解决啦! 如果

    2024年02月13日
    浏览(53)
  • 华三H3C交换机如何配置ssh远程密码登录和管理

    华三交换机如何配置ssh 交换机配置管理地址 [SW1]inter vlan 1 [SW1-Vlan-interface1]ip add 172.16.1.100 24 开启ssh服务并创建密钥 [SW1]ssh server enable //开启ssh服务 [SW1]public-key local create rsa //创建rsa密钥 [SW1]public-key local create dsa //创建dsa密钥 创建ssh用户密码 [SW1]local-user admin //创建用户admin [

    2024年02月12日
    浏览(45)
  • 简单几步学会Linux用户使用SSH远程免密登录,LinuxSSH服务器配置允许/禁止某些用户远程登录

    本文基于Linux上CentOS 7版本配合Xshell 7进行演示 目录 一.SSH简介 1.介绍 2.工作流程 二.具体配置免密步骤 1.配置前准备工作 2.正式配置过程 三.在服务器端配置SSH远程黑白名单 1.配置文件/etc/ssh/sshd_config部分参数解析 2.配置远程登录黑白名单 SSH用于计算机之间的加密登录,是一类

    2024年02月22日
    浏览(55)
  • SSH远程登录协议

           SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。

    2024年01月20日
    浏览(41)
  • ssh 远程登录协议

            1.1 SSH 基础         SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。对数据进

    2024年01月17日
    浏览(44)
  • 【网络协议】远程登录安全连接协议SSH(Secure Shell)

    SSH(Secure Shell)协议是一种用于在不安全网络上提供安全远程登录、命令执行和数据传输的加密网络协议,通过公钥加密和身份验证技术确保通信的安全性和隐私性。 SSH(Secure Shell)最初由Tatu Ylönen在1995年开发,现在已经发展成为一种广泛使用的标准工具,尤其是在Unix和

    2024年02月03日
    浏览(63)
  • SSH原理详解:安全远程登录和文件传输协议

    简介: SSH(Secure Shell)是一种用于远程登录和安全文件传输的网络协议。它提供了加密的数据传输和身份验证机制,确保了远程通信的安全性。本文将深入介绍SSH的工作原理、协议格式分析以及使用方法,帮助读者全面了解SSH协议并正确使用SSH进行远程操作和文件传输。 正

    2024年02月09日
    浏览(57)
  • linux ssh远程登录

    目录 一、ssh概念 二、配置文件 三、ssh组成结构 四、远程控制过程 五、远程复制  六、配置密钥 七、wraooers防火墙                     一、ssh概念   ssh:一种安全通道协议 功能:1.实现字符界面远程登录 2.远程复制 3.ssh协议是对通信对方的数据传输进行加密出来,包括用

    2024年02月06日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包