出于某种原因,我有他以下场景:
在启动时,我正在启动一个脚本,该脚本等待给定的时间并检查在此时间窗口内是否建立了 SSH 连接。如果连接打开,脚本执行操作 A,否则它会终止 sshd 并执行 B。
检测开放连接的最佳方法是什么?(脚本可以用 Bash 或 Ruby 编写)
谢谢
我有一个 Ubuntu 9.04 服务器。在对服务器执行 SSH 时,我遇到了很长时间的延迟。我在 sshd_conf 中添加了“UseDNS no”并在 ssh_conf 中注释掉了“GSSAPIAuthentication yes”,问题仍然存在。
一看/etc/resolve.conf,好像问题出在那里。
内容/etc/resolve.conf:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.xx.xx.xx
nameserver 10.xx.xxx.xx
search xyz.com
Run Code Online (Sandbox Code Playgroud)
我在某处读到这里的多个名称服务器条目可能会导致问题。我在该服务器上使用 VPN 客户端连接到我公司的网络,看起来条目是由 vpn 客户端自动添加的。
如何在不中断 VPN 客户端/连接的情况下修复这些长时间延迟。我不介意在从我的服务器通过 VPN 连接时无法使用我公司的服务器名称/别名,但希望在连接到服务器时修复长时间的 SSH 延迟。
============================
是的,我的意思是 /etc/sshd_conf
我使用IP地址直接连接
我没有使用 VPN 连接到我的服务器(有延迟)。但是,服务器上正在运行 VPN 客户端以进一步连接到其他网络。使用 VPN 客户端从我的服务器登录足够快。
抱歉,我没看懂 AddressFamily、inet 和其他一些评论。
以下是客户端的调试日志(大约有延迟):
OpenSSH_5.6p1, OpenSSL 0.9.8o 01 Jun …Run Code Online (Sandbox Code Playgroud) 我想允许 ssh 访问特定帐户,但是如果我使用特定的公钥连接,我应该被放到一个完整的 shell,否则到一个受限的 shell。
例子:
我使用公钥 ABCDEF(在authorized_keys 中正确设置)将 ssh 连接到 user@myhost.com,然后我得到一个 /bin/zsh shell
如果我使用密码或其他公钥连接到 user@myhost.com,我会得到一个 /bin/rsh shell
我的想法是创建一个自定义的中间外壳(IE:/bin/mysh),检查使用的密钥并从那里执行正确的外壳,但我不知道如何检查使用了哪个密钥(或者是否有可能) )。
env 似乎没有包含任何有用的东西。
关于如何做到这一点或其他可能的解决方案的任何想法?
谢谢。
我有一台 cPanel 服务器,我想允许用户通过 SSH/SFTP/SCP 访问一个特定的文件夹,这可能吗?
我已经为它们设置了对该文件夹的 FTP 访问,但最好使用 SSH 访问。
欢迎任何建议。
在 Ubuntu 上,我希望我的 OpenSSH 服务器在用户使用 SSH 登录时启动脚本,最好是传递主机名或 IP 以及用户名。此外,我希望它在会话终止时(传递用户名)运行脚本。这些脚本不应在用户会话中运行,而应在系统范围内运行。
这个想法是在登录和注销时发出音频警告,例如使用espeak,并在外部显示器上显示信息。
我已经看到有一个pam-scripts包,但我不确定这是否符合我的要求,也不知道如何使用它。
任何帮助表示赞赏!——马库斯
(我也在askubuntu上发布了这个问题。)
我正在编写一个 bash 脚本,该脚本将从 cron 调用以每天一次从远程服务器中提取文件。我正在使用 SSH,因此我需要自动提供密码,因为它在无人值守的情况下运行。到目前为止,这是我想出的:
1:通过创建DSA密钥对ssh-keygen
2:将公钥复制到远程服务器
3:配置ssh-agent处理密钥密码
我的问题是:这一切都是必要的吗?这是最简单/最好的方法吗?这是一项非常简单的任务,因此我希望在保持合理安全级别的同时使配置尽可能简单。
附加信息:
- 未运行 rsync 守护进程
- 两台机器都是 Ubuntu linux
我已经使用 ssh 进行 svn 有一段时间了,但突然发生了这种奇怪的事情
首先,跑步svn up就可以了,非常棒。
后来,运行svn up提示我输入密码,建议的解决方案是执行sudo ssh-add ~/.ssh/*然后执行更新。不是很痛苦,但也不是那么有趣。
现在,即使那样也行不通。它说:
Could not open a connection to your authentication agent.
因此,使这项工作的实际方法是:
exec ssh-agent bash
sudo ssh-add ~/.ssh/*
svn up
有没有办法可以避免做所有这些事情?
非常感谢
这是一个非常奇怪的问题,但在新系统(Fedora、Ubuntu)上 ctrl+c 对某些工具无效:
如果我执行运行近一分钟的 yum list 我不能中断运行 ctrl+c
$time yum list >/dev/null
^C^C^C^C^C^C^C^C^C
Run Code Online (Sandbox Code Playgroud)
命令执行不会停止。
然而,中断查找是可能的。
$ time find / >/dev/null 2>&1
^C
real 0m0.741s
user 0m0.033s
sys 0m0.124s
Run Code Online (Sandbox Code Playgroud)
我很好奇是什么原因造成的。
我必须进行以下设置:
$ stty -a
speed 38400 baud; rows 36; columns 158; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase …Run Code Online (Sandbox Code Playgroud) 我在我们的服务器机房里有一台 PC,它可以双引导到 Windows 和 linux。
显然,当我们需要重新启动机器时,我们可以进入它正在运行的任何系统并重新启动。
但是,由于显而易见的原因,我无法选择要在引导加载程序上引导的操作系统。
除了安装 KVM 之外,还有什么方法可以让我们用接受 ssh 连接并让我相应地启动的东西替换引导加载程序。
我不敢相信我是唯一一个觉得这很有用的人。
问候马克。
我刚刚sudo aptitude update && sudo aptitude dist-upgrade在我的笔记本电脑上运行了 PuTTY(SSH 客户端),它是针对我新的 Ubuntu 服务器的。不幸的是,我刚刚意识到我需要带着笔记本电脑出门,我担心退出 SSH 客户端或让笔记本电脑与 Internet 断开连接会导致服务器无法继续更新!
如果我在服务器正在更新的情况下关闭我的笔记本电脑会发生什么?!