道家人 发表于 2024-6-15 03:58:38

Linux 体系 SSH 和 SCP 服务器搭建、配置、访问以及出现的问题

 SSH是Secure Shell的缩写,是一种网络协议,用于通过本地或远程网络在盘算机上进行远程登录和下令操作。SSH 是 Telnet 协议的演变:正如其名称所描述的,SSH 是安全的,并对通过网络传输的数据进行加密。
SSH 是目前较为可靠,转为远程登录会话和其他网络服务提供的安全协议。SSH 常用于远程登录,远程拷贝文件等。利用 SSH 毗连远程服务器,服务器端要安装 SSH 服务器并开启服务,客户端安装对应的 SSH 客户端。
   本文章将先容如安在 Ubuntu 20.04 上安装并启用 SSH 服务器
环境:

Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-76-generic x86_64) 一、媒介

为了在 Ubuntu 20.04 上安装 SSH 服务器,您必要在服务器上拥有 sudo 权限。
默认情况下,即使是最低配置,您的主机上也应该已经安装了 SSH 。
要检查情况是否确实如此,您可以运行带有“-V”选项的“ssh”下令。
   ssh -V
请注意:ssh的版本信息并不意味着服务器上正在运行 SSH 服务器,它仅意味着您当前能够作为客户端毗连到 SSH 服务器。
让我们看看如何在主机上安装 OpenSSH 服务器。
二、SSH服务器搭建和配置

1、确保您当前的软件包是最新的

sudo apt-get update 2、 安装 SSH 服务器

sudo apt-get install openssh-server 2.SSH相关下令(Ubuntu)

sudo service ssh start          // 启动 SSH 服务
sudo service ssh stop           // 停止 SSH 服务
sudo service ssh restart        // 重启 SSH 服务

sudo service ssh status         // 查询 SSH 服务状态
sudo systemctl status sshd      //检查ssh服务确实在运行
ps -A | grep "ssh"              // 查询 SSH 服务进程 4、在防火墙设置上启用 SSH 流量

如果您利用UFW作为 Ubuntu 20.04 主机上的默认防火墙,则可能必要在主机上允许 SSH 毗连。
要在主机上启用 SSH 毗连,请运行以下下令
sudo ufw allow ssh https://img-blog.csdnimg.cn/direct/87cef9dae3fd478e8bf3016060023ead.png​
如果您不确定是否正在利用UFW 防火墙,可以运行“ufw status”下令。
https://img-blog.csdnimg.cn/direct/feaf6d700fdd41a8a78d5c7f8130b579.png​
此时主机上不必要设置允许 SSH 毗连
https://img-blog.csdnimg.cn/direct/f2b3895f062643c48574608ec929673f.png​
此时主机上必要设置允许 SSH 毗连
5.在体系启动时启用 SSH 服务器

要检查您的服务是否启用,您可以运行以下下令
sudo systemctl list-unit-files | grep enabled | grep ssh 如果终端上没有结果,您应该“启用”该服务以便在启动时启动它
sudo systemctl enable ssh 6.在 Ubuntu 20.04 上配置 SSH 服务器

在向用户授予任何访问权限之前,正确配置 SSH 服务器非常重要。如果做得不好,您将面对 SSH 攻击的风险,而且您的整个基础设施很容易受到损害。默认情况下,SSH 配置文件位于/etc/ssh 文件夹中。
https://img-blog.csdnimg.cn/direct/ede37aa09154448a82f914fb828f8767.png​
 在此目录中,您将找到很多不同的文件和文件夹,但最重要的是:


[*]ssh_config:用于配置SSH 客户端。这意味着它定义了每次利用 SSH 毗连到远程主机或在主机之间传输文件时应用的规则;
[*]sshd_config:用于配置SSH 服务器。例如,它用于定义可访问的x或拒绝特定用户与您的服务器进行通信。
更改 SSH 默认端口

sshd_config 配置文件并查找以下行
#Port 22 确保将您的端口更改为未为其他协议保存的端口,更改默认 SSH 端口时要小心,毗连时必须指定它。
https://img-blog.csdnimg.cn/direct/0324cbac9b584818af88d8b0c7078abe.png
在 SSH 服务器上禁用 root 登录

默认情况下,在最近的发行版中,root 登录设置为“禁止暗码”,也就是说必要设置 SSH 密钥并利用它们才能以 root 身份进行毗连。
即使我们在没有暗码的情况下毗连,也不发起利用 root 登录:如果密钥被泄漏,您的整个主机就会被泄漏。因此,您可以将此选项设置为“否”以完全限定它。
#PermitRootLogin
PermitRootLogin no https://img-blog.csdnimg.cn/direct/859f1bc1b9d34cb69f26b1c2c3bc1bdb.png
重新启动 SSH 服务器以应用更改

为了应用更改,您必要重新启动 SSH 服务器。
sudo systemctl restart sshd

sudo systemctl status sshd 二、ssh客户端、scp访问SSH服务


1.SSH 客户端访问SSH服务

// 连接远程主机(默认 SSH 端口为 22), 连接上后需要输入用户的密码
ssh 用户名@<主机IP>

// 指定端口连接
ssh 用户名@<主机IP>  -p <port> 2. SCP 客户端访问SSH服务

SCP, Secure Copy。SCP 相当于 本地的 CP 下令, 只不过 SCP 用于夸主机远程操作。
终端利用 SCP 下令访问远程主机, 远程主机必须已成功安装并启动 openssh-server 服务。
格式: 
    scp -r /本地文件路径 目标用户名@目标主机IP:/目标文件绝对路径       // 上传
    scp -r 目标用户名@目标主机IP:/目标文件绝对路径 /本地保存路径       // 下载
实例:
//本地 -> 远端(上传):如果上传的是文件夹, 必须加 -r 递归参数 否则会出现 not a regular file错误
scp [-r] <本地文件实际目录> <远端主机名>@<远端主机IP>:<远端文件存放目录>

//远端 -> 本地(下载):如果上传的是文件夹, 必须加 -r 递归参数 否则会出现 not a regular file错误
scp [-r] <远端主机名>@<远端主机IP>:<远端文件> <本地文件存放目录> 三、ssh服务器搭建出现的问题

ssh服务器日记路径
   检察SSH服务日记: 检查目标服务器上SSH服务的日记文件(例如 /var/log/auth.log 或 /var/log/secure),寻找任何可能指示毗连问题的错误
1、auth.log 频繁出现Cron: pam_unix (cron:session): session opened/closed for user root by (uid=0)

这个实在不是一个错误,只是日记中对 cron 定时使命的记录。但是在排查问题是会影响我们的判定,这些信息可能会占据大量日记空间,尤其是如果 cron 频繁实利用命时会导致大量的日记条目。
下面提供了在 Debian/Ubuntu 体系上更改日记记录设置的步调,以镌汰在 auth.log 中记录由 cron 定时使命引起的会话开启和关闭信息。
修改过程:
   1,进入/etc/pam.d目录
2,打开文件 common-session-noninteractive
3,查找 session required pam_unix.so 内容(一样寻常在末了)
4,在这一行上方添加
session pam_succeed_if.so service in cron quiet use_uid
5,保存并退出
6,重启crond服务(Ubuntu为cron):service cron restart
2、解决:no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

第一种方法,在当前用户的.ssh目录下新建config文件,如当前用户为root
vi  ~/.ssh/config Host *
KexAlgorithms +diffie-hellman-group1-sha1 此方法只对当前用户收效,利用其他用户是又会报错。
第二种方法,修改/etc/ssh/ssh_config文件,在最末尾加入即可。
KexAlgorithms +diffie-hellman-group1-sha1 重启服务
重启sshd服务
systemctl restart sshd
或者
sudo systemctl reload sshd
或者
/etc/init.d/sshd restart 将以下行添加到 /etc/ssh/sshd_config 文件的结尾处:
KexAlgorithms diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
确保在编辑配置文件之后,重新加载SSH服务以使更改收效。在大多数Linux体系中,你可以利用雷同下面的下令重新加载SSH服务:
sudo systemctl reload sshd 这将重新加载SSH服务的配置,使新的密钥互换算法配置收效。
3、error: kex_exchange_identification: read: Connection reset by peer

待解决
https://img-blog.csdnimg.cn/direct/cbe922028d2745f28abaffdb20adf9a1.png​


相关内容分保举:
SSH的免密登录详细步调(注释+下令+图)_免密登录ssh-CSDN博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Linux 体系 SSH 和 SCP 服务器搭建、配置、访问以及出现的问题