标签: sshd

与 ssh 断开连接时 tmux 会话被终止

摘要:我试图弄清楚为什么我的 tmux 会话在我与 ssh 断开连接时会死掉

详情

我在 Arch Linux 系统上安装了 tmux。当我开始一个 tmux 会话时,我可以从它分离,然后在 ssh 会话处于活动状态时再次附加。但是如果我结束我的 ssh 会话,那么 tmux 会话就会被杀死。

我知道这不是正常行为,因为我有其他系统,即使 ssh 会话结束,tmux 会话也会继续运行,并且我可以在建立新的 ssh 连接后附加到 tmux 会话。有问题的系统和正常工作的系统具有非常相似的配置,所以我不确定要检查什么。

我正在运行 tmux 1.9a 版。有问题的系统(我有 root 访问权限)的 Linux 内核版本为 3.17.4-1,而正常工作的系统的内核版本为 3.16.4-1-ARCH(我没有 root 权限)系统)。我怀疑内核版本是问题的根源,但这只是我注意到的一个差异。

我想我会问是否有人见过类似的问题并知道可能的解决方案。

导致问题的确切步骤是:

  1. ssh 到机器
  2. 运行tmux以启动 tmux
  3. ctrl-B D 分离(此时我可以重新连接 tmux attach
  4. 关闭 ssh 会话(此时 tmux 会话被终止,当我在另一个终端中以 root 身份登录时,我已经能够观察到这一点)
  5. 重新连接 ssh 并运行tmux attach,我收到消息no sessions并运行tmux ls返回failed to connect to server: Connection refused …

tmux sshd

27
推荐指数
3
解决办法
2万
查看次数

身份验证被拒绝:文件 /var/git/.ssh/authorized_keys 的所有权或模式不正确

编辑

此处暴露的问题已解决(关于文件.ssh夹的文件模式。

但另一个问题仍然存在,所以我创建了一个新问题:>无法使用 SSH-RSA 密钥登录

我无法再连接特定用户的 ssh-rsa 密钥,但它仍然适用于其他用户。

git定义如下用户:

# cat /etc/passwd | grep git
git:x:1002:1002:,,,:/var/git:/bin/bash
Run Code Online (Sandbox Code Playgroud)

所以你注意到这是 git 用户,因此它的家是/var/git,它不在/home.

现在,ssh 总是提示我输入密码:

$ ssh git@srv
git@srv's password:
Run Code Online (Sandbox Code Playgroud)

我检查了日志:

# tail -n 1 /var/log/auth.log
[...] Authentication refused: bad ownership or modes for file /var/git/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

因此authorized_keys,某些所有权或模式配置错误。我不明白,因为这里是这个文件的 conf :

# ls -l /var/git/.ssh/ | grep auth
-rw-rw-r-- 1 git git 394 mai   22 17:39 authorized_keys
Run Code Online (Sandbox Code Playgroud)

这是(以防……)父.ssh目录:

# ls -al /var/git/ | …
Run Code Online (Sandbox Code Playgroud)

ssh authentication key-authentication home sshd

24
推荐指数
3
解决办法
5万
查看次数

SSH 在正确的密码字符串后忽略字符?

远程机器 10.10.10.1 具有名为“user”的用户的密码“asdFGH12”。即使我在“asdFGH12”字符串后输入密码“asdFGH12dasdkjlkjasdus”或任何其他字符,我也可以登录。

$ ssh -v 10.10.10.1
OpenSSH_5.2p1 FreeBSD-20090522, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to 10.10.10.1 [10.10.10.1] port 22.
debug1: Connection established.
debug1: identity file /home/user/.ssh/identity type 0
debug1: identity file /home/user/.ssh/id_rsa type -1
debug1: identity file /home/user/.ssh/id_dsa type 2
debug1: Remote protocol version 1.99, remote software version OpenSSH_4.1
debug1: match: OpenSSH_4.1 pat OpenSSH_4*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.2p1 FreeBSD-20090522
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received …
Run Code Online (Sandbox Code Playgroud)

password authentication sshd

19
推荐指数
2
解决办法
4716
查看次数

理解 `who -a` 命令的输出

我问这个问题是因为,虽然互联网上有很多答案表明这who -a是一个选项,但没有人解释如何阅读输出。如果您可以提供一个指向解释这一点的在线网站的链接,那同样是一个很棒的答案。这是我想破译的一个例子:

[bo@hostname ~]$ who -a
                        Jun 17 03:47               590 id=si    term=0 exit=0
           system boot  Jun 17 03:47
           run-level 3  Jun 17 03:47                   last=S
                        Jun 17 03:48              4424 id=l3    term=0 exit=0
LOGIN      tty1         Jun 17 03:48              5503 id=1
LOGIN      tty2         Jun 17 03:48              5504 id=2
LOGIN      tty3         Jun 17 03:48              5505 id=3
LOGIN      tty4         Jun 17 03:48              5506 id=4
LOGIN      tty5         Jun 17 03:48              5507 id=5
LOGIN      tty6         Jun 17 03:48              5508 id=6
           pts/0        Oct 19 16:27             15250 …
Run Code Online (Sandbox Code Playgroud)

utilities sshd

16
推荐指数
1
解决办法
3345
查看次数

我怎样才能真正关闭 ssh 服务器?

我使用 systemctl disable ssh 禁用 ssh 服务器,然后重新启动。重启后,我仍然可以通过ssh登录远程服务器。我使用 systemctl status ssh 检查服务器状态,它处于非活动状态。

$ systemctl -a | grep ssh
ssh.service                                               loaded    inactive dead      OpenBSD Secure Shell server
ssh@3-192.168.0.120:22-192.168.0.104:31079.service        loaded    active   running   OpenBSD Secure Shell server per-connection daemon (192.168.0.104:31079)
system-ssh.slice                                          loaded    active   active    system-ssh.slice
ssh.socket                                                loaded    active   listening OpenBSD Secure Shell server socket
Run Code Online (Sandbox Code Playgroud)

systemd sshd

16
推荐指数
1
解决办法
2618
查看次数

是否可以使用 2 个不同的身份验证方案在 SSH 上打开 2 个端口?

我目前正在尝试设置 SSH 服务器,以便仅允许使用 SSH 密钥从网络外部访问它,并且不允许访问 root 或任何其他用户名/密码组合。

同时,网络内部的内部用户,仍然需要能够连接到同一个系统,但期望使用用户名和密码以更传统的方式登录。

外部和内部用户将使用 PuttySSH 从 Windows 访问系统,外部访问将通过端口转发防火墙进入系统,该防火墙将在某些任意选择的高编号端口(如 55000(或管理员决定什么)

下图试图更好地显示交通流。

SSH 设置

我知道如何将实际登录设置为仅使用密钥,并且我知道如何拒绝 root,我不知道如何将两种登录类型分开。

我曾考虑在同一 IP 上的不同端口上运行两个 SSHD 副本,并为每个端口设置两种不同的配置。

我还考虑过设置“匹配”规则,但我不确定是否可以使用这些选项隔离服务器范围的配置。

最后,登录的外部人员将始终是同一用户,出于这个问题的目的,我们称他们为“弗兰克”,因此“弗兰克”将只被允许从外部 IP 登录,而实际上永远不会坐在前面任何内部连接的系统,因为系统的每个其他用户只会在内部连接,而永远不会从外部 IP 连接。

他连接的 Franks IP 是动态分配的,但他连接的公共 IP 也是静态的,永远不会改变,端口转发器的内部 IP 也不会改变,SSH 服务器的内部 IP 地址也不会改变.

内部客户端将始终从私有网络范围内的 IP 连接,该 IP 是内部 SSH 服务器 IP 的一部分,并且是 16 位掩码 EG:192.168.0.0/16

是否可以使用一个配置文件和一个 SSH 服务器实例进行设置?如果是这样,我该怎么做?

或者

使用具有不同配置的 2 个正在运行的服务器会更好吗?

参考 SSH 服务器在 Ubuntu 18.04 上运行。

login key-authentication authorization sshd

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

身份验证被拒绝:目录 /root 的所有权或模式错误

我正在尝试通过 SSH 连接到装有 Debian 的远程 VPS。在调试模式下运行 sshd,我发现:

Authentication refused: bad ownership or modes for directory /root
Run Code Online (Sandbox Code Playgroud)

我尝试设置权限,就像我在谷歌中找到的那样:

chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

但它仍然拒绝使用 pubkey 进行身份验证并要求输入密码,并在调试中显示相同的消息。我究竟做错了什么?

ssh permissions key-authentication sshd

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

sshd:设置“UsePAM no”有什么实际效果

在 中/etc/ssh/sshd_config,PAM 在 Debian 10 上默认启用:

UsePAM yes
Run Code Online (Sandbox Code Playgroud)

在我不想允许使用密码或 kerberos 登录,而只想允许 SSH 密钥身份验证的情况下,PAM在 sshd 中启用它还有什么优势吗?UsePAM或者,如果设置为“否” ,它会简化流程并可能使其更安全吗?

在 sshd 中禁用 PAM 会产生什么实际影响?我会注意到有什么不同吗?

login ssh pam sshd

16
推荐指数
2
解决办法
3万
查看次数

如何从 SSHD 中的“匹配组”中排除?

SSHD 配置中有一个 Match 组:

cat /etc/ssh/sshd_config
...
    Match Group FOOGROUP
    ForceCommand /bin/customshell
...
Run Code Online (Sandbox Code Playgroud)

机器上有许多用户在“FOOGROUP”中。

我的问题:如何从“匹配组”中排除“FOOGROUP”中的给定用户?

openssh sshd

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

这两个 SSHD 配置有什么区别?

1

Match Group GROUPNAME, User *,!root
Run Code Online (Sandbox Code Playgroud)

2

Match Group GROUPNAME User !root
Run Code Online (Sandbox Code Playgroud)

我的问题: SSHD_CONFIG 中的#1 和#2 有什么区别?

sshd

15
推荐指数
1
解决办法
494
查看次数