小编zpa*_*win的帖子

ssh 在所有设备上工作,但某些设备上的 scp 给出“连接已关闭”错误

快速版本:

ssh&scp在我的台式机和笔记本电脑上工作。从我的 Android 手机上的 termuxssh可以运行,但scp不能运行。在这种情况下,我收到有关“连接已关闭”的错误。


扩展版

最初,当我问这个问题时,我在连接到我的 Fedora Linux 盒子时在 Android 手机上从 termux 运行 scp 时遇到了这个问题。我很困惑,因为ssh一直在工作,所以我提供了很多调试信息。由于我后来了解到这个问题与 termux 完全无关,而与 OpenSSH 版本无关,因此我尝试清理大量无关的信息转储并使其更易于访问,同时仍然保留相关错误消息以实现更好的 seo 匹配。

设备:

  • 设备 A(计算机):运行 openssh.x86_64 8.7p1-3.fc35 的 Fedora 35
  • 设备 B(计算机):运行 openssh.x86_64 8.7p1-3.fc35 的 Fedora 35
  • 设备C(手机):android上的termux(我最初未能捕获openssh版本,大概是v8.8或更高版本)

计算机 A 和 B 具有基本相同的sshd_config文件,所有 3 台计算机的文件内容基本相同~/.ssh/config

问题:

A->B、B->A、C->A 和 C->B 之间的 ssh 连接都工作正常。我对从任何一台计算机连接到我的手机不感兴趣,并且从未在其上配置 sshd,因此没有测试该场景。

但是,对于通过 ssh 运行的 scp,我遇到了以下情况:A->B 和 B->A 工作,而 C->A 和 C->B 失败并出现以下错误:

$ scp -rp …
Run Code Online (Sandbox Code Playgroud)

ssh scp openssh sshd

9
推荐指数
1
解决办法
2万
查看次数

如何使 TeamViewer 服务按需而不是永远在线?

我使用的是 Linux Mint 19.3,并且希望让 TeamViewer systemd 服务仅在启动 GUI 应用程序 ( /opt/teamviewer/tv_bin/script/teamviewer) 时运行。在 Windows 上,通过选择 TeamViewer 并将其“启动类型”从“自动”更改为“手动”,可以从“服务”对话框中轻松完成此操作。

在 Linux 中,我有 TeamViewer 15(通过官方网站的 deb 文件安装)。我看到 systemd 服务文件有:

$ cat /etc/systemd/system/teamviewerd.service
[Unit]
Description = TeamViewer remote control daemon
After = network.target network-online.target dbus.service
Wants = network-online.target
Requires = dbus.service

[Service]
Type = forking
PIDFile = /var/run/teamviewerd.pid
ExecStart = /opt/teamviewer/tv_bin/teamviewerd -d
Restart = on-abort
StartLimitInterval = 60
StartLimitBurst = 10

[Install]
WantedBy = multi-user.target
Run Code Online (Sandbox Code Playgroud)

并且该服务在登录期间自动启动,这是我不想要的。我不介意在启动 gui 之前编写一个新的 bash 脚本来启动服务,但我不太擅长编辑 systemd 服务,并且担心新版本会覆盖我的更改。

问题:

  1. 我可能可以删除服务文件并在 …

dpkg apt systemd services teamviewer

5
推荐指数
1
解决办法
1668
查看次数

为什么 podman 会停止容器并尝试附加它?

刚刚开始学习容器,所以我可能错过了一些东西/还没有读够,但我遇到了一种奇怪的行为,并试图了解正在发生的事情。我尝试谷歌搜索,但无法找到解释,所以我无法判断我是否遗漏了一些概念,遇到了一些限制,或者遇到了错误。

基本上,当我尝试附加到容器时,容器会停止。

我在 Fedora 33 上使用从中央存储库安装的 podman v3.1.2,并遵循官方“入门”指南(此处)。我正在用户模式下运行所有​​内容(例如无根)。

指南中运行的初始命令的摘要:

$ podman pull docker.io/library/httpd >/dev/null
$ podman run -dt -p 8080:80/tcp docker.io/library/httpd
  48cf6fbe988a6feb243c62e5298b37f51709251cc05f8d39f17566e1d7fc17f7
 
$ podman ps
  CONTAINER ID  IMAGE                    COMMAND           CREATED         STATUS             PORTS                 NAMES
  48cf6fbe988a  docker.io/library/httpd  httpd-foreground  23 seconds ago  Up 22 seconds ago  0.0.0.0:8080->80/tcp  cool_cori
 
$ curl http://localhost:8080
  <html><body><h1>It works!</h1></body></html>
$ podman stop -l
  48cf6fbe988a6feb243c62e5298b37f51709251cc05f8d39f17566e1d7fc17f7
$ podman rm -l
  48cf6fbe988a6feb243c62e5298b37f51709251cc05f8d39f17566e1d7fc17f7
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好。现在我试图稍微偏离指南。我想看看是否可以命名容器并附加到它并从容器内运行 bash 终端。我浏览了一下man podman-run并添加了--name--hostname参数,这似乎没问题。另请通读man podman-attach,听起来它应该允许我在容器中获得 bash 终端,但当我使用它时,它会停止容器。

$ podman run …
Run Code Online (Sandbox Code Playgroud)

container podman

5
推荐指数
1
解决办法
2996
查看次数

标签 统计

apt ×1

container ×1

dpkg ×1

openssh ×1

podman ×1

scp ×1

services ×1

ssh ×1

sshd ×1

systemd ×1

teamviewer ×1