7
9月
2021
15:13

在 Linux 上设置 SSHD 服务器和 SSH 客户端

7 9月 2021 15:13

有时您需要通过 SSH 连接到您的家庭或工作 PC 进行配置。

安装方案

  1. 在生产 Ubuntu Linux 服务器上安装 SSHD。
  2. 在服务器上配置 SSHD。 在本示例中,我们将使用端口 22334,而不是 SSH 服务的默认 TCP 端口 22。
  3. SSHD 服务器必须持续启动并运行。 允许 SSHD 服务启动。
  4. 本地 UFW 防火墙必须配置为允许外部访问端口 22334/TCP。
  5. 如果您打算从 Internet 连接,则必须从路由器的 WAN 端口(端口 22334)转发到本地网络上计算机的 IP 地址。
  6. 在 MX Linux 客户端(Debian 11“Buster”或 Debian 12“Bookworm”)上安装 SSH
  7. 通过 SSH 从客户端连接到服务器。

在文章的最后我谈到了 X11 转发。

步骤1.在服务器上安装SSHD

在 Ubuntu Linux 上安装 SSHD - apt-get 命令的参数指定 ssh 元包的名称:

sudo apt-get install ssh

该命令将安装软件包 openssh-client и openssh-server 同时。

步骤 2. 设置 SSHD 服务器

在我们外部连接的计算机上设置 SSHD
首先我复制到bak,即我把原来的SSHD配置文件放在一边:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.COPY

更正配置文件 根据指示 考虑到将使用密码进行登录。 $

我使用“nano”编辑器修复了它:

sudo nano /etc/ssh/sshd_config

我的配置文件 sshd_配置 我引用如下(您可以复制并粘贴):

cat /etc/ssh/sshd_config | grep \#-v

Include /etc/ssh/sshd_config.d/*.conf
Port 22334
AddressFamily inet
ListenAddress 0.0.0.0
PermitRootLogin no
MaxAuthTries 6
MaxSessions 1
PasswordAuthentication yes
PermitEmptyPasswords no
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server

步骤3:配置SSHD服务在Ubuntu服务器上启动

SSHD 服务在服务器上用于服务器的远程管理以及从外部连接到服务器。

允许 SSHD 服务在操作系统启动时持续运行 - 通过服务名称 ssh.service:

sudo systemctl enable ssh

重新启动 sshd 守护程序以将更改应用到服务器(主机 PC)上的配置文件。

sudo systemctl restart ssh

! 服务名称是 ssh。 名称 sshd 是一个别名。 如果通过名称访问 ssh 服务 sudo systemctl enable sshd.service - команда не сработает (ошибка "Failed to restart sshd.service: Unit sshd.service not found."). Потому что основная служба называется ssh.service, а её псевдоним - sshd.service. Вывод: для управления службой sshd используется имя службы ssh. Команды sudo systemctl restart ssh и sudo systemctl restart sshd 他们做同样的事情,但第一个更好。

步骤4:配置本地UFW防火墙

使用一个命令启动并允许 ufw 在重新启动后启动。

sudo systemctl enable --now ufw

检查:

sudo systemctl status ufw

为了在防火墙上打开 sshd 服务器的“秘密”端口 22334,我运行了一个添加允许规则的命令:

sudo ufw allow 22334

查看ufw防火墙规则:

sudo ufw show added

步骤 5. 端口转发

由于我在本地网络内测试了该任务,因此我跳过了这一点。 任何人都可以在 Internet 路由器上独立配置转发“秘密”SSH 端口。 如果使用 VPN 隧道,则显然不需要端口转发。

步骤 6. 在运行 MX Linux (Debian) 的上网本上安装 ssh

在 Debian 上,ssh 安装命令与 Ubuntu 上略有不同:

sudo apt-get install ssh

步骤7.从客户端连接到SSH服务器

如果服务器有静态“白色”IP 地址,则使用以下命令从客户端连接到它

ssh user@123.45.67.8 -p 22334

其中 user 是服务器上必须存在的用户登录名,
123.45.67.8 - 服务器IP地址,
22334 - SSH 端口。

当您第一次连接时,会出现一条关于服务器信任的消息,从键盘上回答“yes”。
然后你需要输入 密码 到您的帐户 用户,您将被带到服务器控制台(终端会话)。

! 如果服务器密钥/证书已更改(例如,已重新安装操作系统),则会出现消息“警告:远程主机标识已更改”并且将无法进行连接。 如果您确定机器一切正常,则只需重新安装服务器,即可在客户端上执行删除旧服务器证书指纹(指纹)的操作,命令将写入消息中,例如: ssh-keygen -f "/home/user/.ssh/known_hosts" -R "\[123.45.67.8\]:22334

底线

! !! _设置完成_通过SSH登录远程服务器完成。

Next steps

如果您打算经常从同一台计算机连接到服务器,则可以使用“ssh-keygen”程序生成的证书配置与 SSH 服务器的连接,而不是密码保护,如下所述 article itproffi.ru

解决X11转发问题

(2023 年 11 月 15 日的附录).
按照说明操作后,我以 ssh 文本模式访问服务器,但无法在 X11 转发 模式(ssh -X ...)下从客户端终端工作,然后在客户端上运行图形服务器应用程序时(例如,从 ssh 会话启动时) xclock an error occurred “连接本地主机端口 6000:连接被拒绝。错误:无法打开显示:本地主机:10.0”。 这个问题在客户端并没有以任何方式解决。 I got it like this:

在客户端:

sudo apt install putty

然后——
开始 - 互联网 - Putty SSH 客户端

“配置”- 连接方式 - SSH - 启用压缩
“配置”- 连接方式 - SSH -X11-启用X11转发
“配置”-“会议”- 输入服务器的IP地址和端口
“配置”-“会议”- 已保存的会话 -我的- 保存

  • 已选择 我的
  • 按下 “打开”
  • 输入的用户名和密码
  • 进入服务器会话
  • 检查: echo $DISPLAY должна выводить localhost:10.0. (Если это не так, выполнить export DISPLAY=:10.0
    *xclock или `
  • xclock 在客户端屏幕上启动(在服务器上运行)! 万岁!
    sudo apt install xsysinfo
    xsysinfo- 有关服务器核心负载的实时信息。

    友情链接

  • sshd_config配置文件中的选项说明


相关出版物