我有用于运行网络服务器的 vps,它目前运行 ubuntu 服务器 12.04。几周以来,我的 ssh 控制台中不断出现很多错误。
2014 Apr 11 08:41:18 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:21 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:24 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:25 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:26 vps847 PAM service(sshd) ignoring max retries; 6 > 3
2014 Apr 11 08:41:29 vps847 PAM service(sshd) ignoring …Run Code Online (Sandbox Code Playgroud) 我将在下周的一次会议上谈论我创建的一些软件工具。在此演示期间,我的笔记本电脑将显示在投影仪屏幕上。演示文稿将被录制下来并发布在 youtube 上。如果出于某种原因,我有机会~/.ssh/known_hosts在演示过程中打开和编辑我的文件,我应该在这样做时断开投影仪吗?披露我的 known_hosts 文件是否有任何安全风险?
有没有办法强制 SSH 在远程端使用特定的 shell,而不管用户的默认 shell 是什么?
我尝试过类似的解决方案:
ssh host.domain.com /bin/bash -c 'complicated, multi-line command'
Run Code Online (Sandbox Code Playgroud)
但不幸的是,远程端的默认 shell 负责解析“复杂的多行命令”部分,我很难充分地转义它以供 Bash 和 C shell 用户使用。
我无法使用密码而不是密钥文件通过 ssh 登录。
是的,我知道它是完全不安全的,但在配置中的这一点上,我正在关闭变量并在左侧和右侧试图让它工作。
# $OpenBSD: sshd_config,v 1.73 2005/12/06 22:38:28 reyk Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin
# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options change a
# default value.
Port 22
#Protocol 2,1
Protocol 2
#AddressFamily any
#ListenAddress …Run Code Online (Sandbox Code Playgroud) 我正在尝试在嵌入式设备(Synology DS212+ NAS)上运行的 ARM Linux 上安装 bash 作为默认 shell。但确实有些不对劲,我无法弄清楚它是什么。
症状:
1)root有/bin/bash作为默认shell,可以通过SSH正常登录:
$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
$ ssh root@NAS
root@NAS's password:
Last login: Sun Dec 16 14:06:56 2012 from desktop
#
Run Code Online (Sandbox Code Playgroud)
2) joeuser 将 /bin/bash 作为默认 shell,并在尝试通过 SSH 登录时收到“权限被拒绝”:
$ grep joeuser /etc/passwd
joeuser:x:1029:100:Joe User:/home/joeuser:/bin/bash
$ ssh joeuser@localhost
joeuser@NAS's password:
Last login: Sun Dec 16 14:07:22 2012 from desktop
Permission denied, please try again.
Connection to localhost closed.
Run Code Online (Sandbox Code Playgroud)
3) 将 joeuser 的 shell 改回 /bin/sh:
$ grep joeuser /etc/passwd
joeuser:x:1029:100:Joe …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来使用特定的 CIDR 块来匹配 SSH 客户端配置中的主机(通常是~/.ssh/config)。例如,如果 IP 落在某个范围内,我有一个条目可以通过堡垒主机转发所有流量,让我们说10.1.0.0/16:
host 10.1.*
proxycommand ssh -q bastion -W %h:%p
Run Code Online (Sandbox Code Playgroud)
这很有效,但是当我添加一些不完全符合点表示法的范围时呢?
# doesn't work, unfortunately
host 10.2.0.0/18
proxycommand ssh -q bastion-foo -W %h:%p
host 10.2.64.0/18
proxycommand ssh -q bastion-bar -W %h:%p
Run Code Online (Sandbox Code Playgroud)
手册中是否有我遗漏的内容,或者可以匹配这些主机 IP 范围的巧妙脚本技巧?
跟进:看起来与每个服务器运行几个月相吻合的一系列快速断开连接可能是巧合,只是用来揭示实际问题。它无法重新连接的原因几乎可以肯定是由于 AliveInterval 值(kasperd 的回答)。使用 ExitOnForwardFailure 选项应该允许在重新连接之前正确发生超时,这应该可以解决大多数情况下的问题。MadHatter 的建议(kill 脚本)可能是确保隧道可以重新连接的最佳方法,即使其他一切都失败了。
我在防火墙后面有一个服务器 (A),它在几个端口上启动一个反向隧道到一个小的 DigitalOcean VPS (B),所以我可以通过 B 的 IP 地址连接到 A。这条隧道已经持续工作了大约 3 个月,但在过去的 24 小时内突然发生了四次故障。不久前,另一家 VPS 提供商也发生了同样的事情——几个月的完美运营,然后突然出现多次快速故障。
我在机器 A 上有一个脚本,它自动执行隧道命令(ssh -R *:X:localhost:X address_of_B对于每个端口 X),但是当它执行时,它说Warning: remote port forwarding failed for listen port X.
进入/var/log/secure服务器上的 sshd显示以下错误:
bind: Address already in use
error: bind: Address already in use
error: channel_setup_fwd_listener: cannot listen to port: X
Run Code Online (Sandbox Code Playgroud)
解决需要重启VPS。在那之前,所有重新连接的尝试都会给出“远程端口转发失败”的消息,并且不会起作用。现在到了隧道只持续大约 4 小时才停止的地步。
VPS 上没有任何变化,它是一台一次性使用的单用户机器,仅用作反向隧道端点。它在 CentOS 6.5 上运行 OpenSSH_5.3p1。当连接丢失时,sshd 似乎没有关闭其末端的端口。我无法解释为什么,或者为什么在几个月近乎完美的操作之后会突然发生。
为了澄清,我首先需要弄清楚为什么 sshd 在隧道失败后拒绝侦听端口,这似乎是由 sshd …
我正在尝试/etc/ssh/sshd_config在我的专用 debian7 服务器上使用AllowUsers和AllowGroups. 但是我似乎无法让两者一起工作。
testuser。该用户位于名为 的组中ssh-users:
$ groups testuser
testuser : testuser ssh-users
Run Code Online (Sandbox Code Playgroud)testuser正在尝试通过连接ssh testuser@<server_ip>并输入他们的密码。
sshd_config可以在这里找到:http : //pastebin.com/iZvVDFKL - 我认为基本上我对默认所做的唯一更改是:
PermitRootLogin noAllowUsers(实际用户名在我的服务器上不同)service ssh restart每次修改后都会运行sshd_config。testuser 设置时可以连接AllowUsers:
AllowUsers user1 user2 testuser
Run Code Online (Sandbox Code Playgroud)testuser可以不设置连接时,AllowGroups其组:
AllowUsers user1 user2
AllowGroups ssh-users
Run Code Online (Sandbox Code Playgroud)
其结果在Permission denied, please try again.当testuser …
ssh ×10
bash ×2
linux ×2
amazon-ec2 ×1
debian ×1
known-hosts ×1
pam ×1
shell ×1
ssh-keys ×1
ssh-tunnel ×1
synology ×1
ubuntu ×1