我看到很多带有这一行的日志:
Nov 7 03:47:41 s1 sshd[23430]: Received disconnect from XX.XXX.XX.XX: 11:
Nov 7 05:08:16 s1 sshd[24474]: Received disconnect from XX.XXX.XX.XX: 11:
Nov 7 06:33:59 s1 sshd[25526]: Received disconnect from XX.XXX.XX.XX: 11:
Nov 7 08:06:33 s1 sshd[26601]: Received disconnect from XX.XXX.XX.XX: 11:
Nov 7 09:24:14 s1 sshd[27460]: Received disconnect from XX.XXX.XX.XX: 11:
Nov 7 10:59:49 s1 sshd[28821]: Received disconnect from XX.XXX.XX.XX: 11:
Nov 7 12:14:39 s1 sshd[29894]: Received disconnect from XX.XXX.XX.XX: 11:
Run Code Online (Sandbox Code Playgroud)
我在这里只粘贴了 7 行,但我在日志文件中有数百行。IP始终相同。
我被告知这表明我的服务器被黑了,攻击者以某种方式设法清除了注册登录信息的日志条目,因为为了获得“断开连接”消息,我必须为以前一样的IP。这是真的?
我的问题是:
我正在使用 VPN(带有 OpenVPN)来保持我的家庭和工作计算机之间的访问,今天我尝试通过 ssh 转发一个仅限 GUI 的应用程序,我发现这非常慢。我之前使用过 SSH X11 转发,它确实有延迟,但是在这两个主机之间它真的很大。从单击按钮到在本地计算机上显示输出之间大约需要 20 秒。
我rtt min/avg/max/mdev = 84.393/86.858/91.297/3.163 ms在这两个主机之间有延迟,SSH 连接给我大约 1.2MiB/s,我认为它应该绰绰有余:\
我正在使用-YCX,并且我已经尝试使用和不使用Y和C(openvpn 已经用 lzo 压缩了东西),以及不同的密码,结果相似。
我开始认为这可能是 GTK 主题,它可能真的很重或什么的。
有谁知道这是否正常,我该怎么做才能减少延迟?(3-5s 可以忍受,但 20 太多了)
我想允许这两种身份验证类型:公钥 + 谷歌身份验证器或密码 + 谷歌身份验证器。
我有以下内容sshd_config:
AuthenticationMethods publickey,keyboard-interactive:pam password,keyboard-interactive:pam
UsePAM yes
ChallengeResponseAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication yes
Run Code Online (Sandbox Code Playgroud)
而在/etc/pam.d/ssh我取消注释
#@include common-auth and added auth required pam_google_authenticator.so
Run Code Online (Sandbox Code Playgroud)
在文件的末尾。
密钥 + 令牌路由仍然有效,但由于某种原因,我的密码总是被拒绝并显示“拒绝访问”消息。
我发现每当我设置UsePAM为“是”时,密码验证都会失败。不知道为什么?
/etc/pam.d/sshd 的内容:(这个文件对我来说似乎很长,但它只是 ubuntu 的默认值,也许我可以缩短它?)
# PAM configuration for the Secure Shell service
# Standard Un*x authentication.
#@include common-auth
# Disallow non-root logins when /etc/nologin exists.
account required pam_nologin.so
# Uncomment and edit /etc/security/access.conf if you need to set complex
# access limits …Run Code Online (Sandbox Code Playgroud) 在工作中,我们有一个旧的 C 程序,它与霍尼韦尔的工业手持终端一起工作。
该终端有自己的 ssh 客户端来连接到 linux redhat 6.6 服务器。一旦它连接到 linux box(使用某个用户),bash shell 就会启动一个 C 程序,并带有以下参数
export TERM=vt200
stty raw icrnl -echo
$APLI_EXEC/program param1 param2
Run Code Online (Sandbox Code Playgroud)
所以流程就像 => 客户端 ssh --> ssh 服务器-> bash --> c 程序
应用程序(或看起来)运行良好,但有时(每周 1-3-5 次)随机终端停止从服务器接收数据,但应用程序接收来自服务器的输入。就像在 shell 中编写 Ctrl+S 一样。
使用 strace 调试应用程序和 ssh 进程时,我意识到一些奇怪的事情:
应用程序 strace 很好
write(1, "1", 7) = 1
Run Code Online (Sandbox Code Playgroud)
但是 ssh 过程的 strace 不好(我认为..是的,我看到 ioctl 没有 echo 参数,但是...)
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
read(3, "\227\316\242\350\261\330)\300e\210\352\367\2VX\24\305\2474\272\371\34\273n{\323p.\211\17H\327"..., 16384) …Run Code Online (Sandbox Code Playgroud) SSH 公钥支持注释(仅由附加到密钥末尾的文本组成),这使得识别其他无法识别的 id_rsa.pub 文件变得容易。您可以使用注释来存储信息,例如密钥属于谁、创建时间以及用于什么机器。
私钥似乎缺少此功能。ssh-keygen -C comment将生成一个密钥对,将注释附加到公钥,但私钥将保持未注释。ssh-keygen有一个-c论点“请求更改私钥和公钥文件中的注释”,但是
root@kitsune:~# ssh-keygen -c -f id_rsa
Comments are only supported for RSA1 keys.
Run Code Online (Sandbox Code Playgroud)
所以看起来 SSH2 私钥格式没有注释字段。只要将这对密钥放在一起并放在正确的位置,这通常没问题,但是文件可能会被复制和移动(这可能发生在帐户/机器共享密钥时)或意外覆盖,并且它们都有相同的名称(id_rsa),因此您可能会忘记哪个键是哪个。在没有评论的情况下,保持私钥有条理的最佳做法是什么?
我正在 CentOS 7 上设置 FreeIPA 服务器,并且我想在密码过期时阻止通过 SSH 进行的 RSA 身份验证。默认情况下,当我使用户密码过期并登录时,他们被迫更改密码。但是,如果同一用户也使用 RSA 身份验证,则服务器允许他们进入并且不会强制他们更改密码。我搜索了与 FreeIPA、PAM 和 SSH 相关的主题,但似乎找不到我正在寻找的答案。
当用户的密码过期时,有什么方法可以阻止通过 SSH 进行的 RSA 密钥身份验证?
我尝试为 autossh 创建一个可靠的 systemd 服务。
服务正常工作,但如果主机密钥发生变化,则服务处于正常状态(正在运行)。
如果隧道不起作用,我希望它处于“失败”状态。
这是我当前的 systemd 服务文件:
# Source is in srv/salt/tunnel/autossh\@.service
# which is a git repo.
# Don't edit /etc/systemd/system/autossh\@.service
[Unit]
Description=Tunnel For %i
After=network.target
[Service]
User=autossh
# https://serverfault.com/a/563401/90324
ExecStart=/usr/bin/autossh -M 0 -N -o "ExitOnForwardFailure yes" -o "ConnectTimeout=1" -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 40443:installserver:40443 -R 8080:installserver:8080 tunnel@%i
Restart=always
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
这是输出 systemctl status autossh@foo-work
salt:/srv # systemctl status autossh@foo-work
autossh@foo-work.service - Tunnel For foo-work
Loaded: loaded (/etc/systemd/system/autossh@.service; enabled)
Active: active (running) since Wed, …Run Code Online (Sandbox Code Playgroud) 我有一个 OpenNMS 系统配置和运行。
我有几台 Linux (debian) 服务器,我需要监控它们上是否正在运行特定的服务。这必须仅使用 ssh 访问来完成。没有 SNMP 或代理。我必须配置 OpenNMS 才能登录这些服务器并检查此服务是否正在运行。
我已经阅读了关于轮询的内容,但我还没有找到有关如何配置 OpenNMS 以访问远程 Linux 计算机并检查服务是否正在运行的说明。
理想情况下,我正在寻找一种在 OpenNMS 中指定 IP 地址、用户名、密码和我要监视的进程名称的方法。
我怎样才能做到这一点?
我已经设置了 SSH - 使用 kerberos V5 单点登录。当用户密码已过期时,它返回'警告:密码已过期。'并允许用户登录!还送了我的变化/etc/pam.d/password-auth,使得pam_krb5.so来自上面pam_unix.so:
验证堆栈:
auth requisite pam_krb5.so uid >= 500
#Google authentication configuration module
auth [success=1 default=ignore] pam_access.so accessfile=/etc/security/access-local.conf
auth requisite pam_google_authenticator.so
auth [success=1 default=ignore] pam_unix.so nullok try_first_pass
auth required pam_deny.so
auth requisite pam_succeed_if.so uid >= 0 quiet
Run Code Online (Sandbox Code Playgroud)
账户栈:
account required pam_unix.so broken_shadow
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_krb5.so uid >= 500
account required pam_permit.so
Run Code Online (Sandbox Code Playgroud)
请提出任何更改建议,以防止密码过期的用户登录。
日志 :
krb5kdc.log …
正如您在标题中已经读到的,我目前正在运行多个用作 git 服务器的 docker 容器,通常应该在端口 22 下运行。这显然不起作用,但我的请求如下。
在端口 22 上提供以下内容:
我知道我必须跨容器和帐户同步 ssh 密钥,但这不会是一个大问题,但我不知道是否可以构建重定向系统。
我的一种方法是使用ForceCommand,但我无法重定向使用的 SSH 密钥...
另一个想法是在端口 22 上运行一个小工具,它只是在所有 SSH 守护进程之间路由完整的请求,但我还没有(还?)找到这样的工具,不知道是否可以构建这样的工具出于安全原因。