我有一个到一台机器的 ssh 连接,该连接在 30 分钟没有用户输入后被该机器断开。但是,如果我开始类似的操作top,连接将保持活动状态。由于这是客户端的机器,我无法重新配置该机器的 SSH 服务器。所以我正在寻找一种方法来自动检测空闲并启动类似top. 一种 Bash 的“屏幕保护程序”。
我知道我可以用 来做到这一点screen,但不幸的screen是没有安装,而且我无法安装软件。所以我需要使用 Bash 提供的东西。
明确地说:我正在寻找一种解决方案,我在登录后启动一次,然后我想使用该终端,走开,两小时后回来继续工作,在走开之前不输入任何内容。此外,我不希望隧道的东西(为此我推荐伟大的工具sshuttle)
有任何想法吗?
我在我的 linux 机器上使用了很多到各种服务器的 SSH 隧道(用于连接到数据库、Web 服务器等),通过 shell 脚本查看当前打开的隧道列表会非常方便。
我可以通过 netstat 上的 grep 识别本地连接:
netstat -n --protocol inet | grep ':22'
Run Code Online (Sandbox Code Playgroud)
但这不会向我显示它连接到的远程端口(显然包括没有隧道的标准 SSH 连接)
更新:答案很好,但没有显示我连接的远程端口。例如,我经常有一条通向 mysql 的隧道,比如 localhost:3308 映射到服务器上的 :3306。通常我可以通过我选择的本地端口来猜测,但同时访问这两个端口会很好。
有任何想法吗?
我有一个奇怪的问题:当我使用 PuTTY 和 SSH 连接到本地Windows 7上托管在VMware 中的 Linux 服务器时,我经常收到错误消息,然后 PuTTY SSH 窗口处于非活动状态。通常我可以使用 PuTTY 登录服务器并执行某些操作,但是在随机时间(大约一两分钟)后,我收到该错误。有时我什至无法登录,出现超时错误。"Network error: Software caused connection abort"
我想我的 VMware Player 有问题,因为我在 VMware 中托管了另一个 Ubuntu 桌面作为代码存储库服务器,并且当我执行 SVN 更新/提交时,它经常出现超时错误。但是,我也猜测 Windows 7 有一些怪癖,因为在 VMware 中托管的相同 Ubuntu 服务器作为代码存储库在 Windows Vista 上运行得非常好!在我从 Windows XP 迁移到 Windows Vista 再到 Windows 7 之后,似乎所有不好的事情都发生了!
这个问题的原因可能是什么,如何解决?
我进行了谷歌搜索并应用了所有方法来提供帮助,包括:
TCPKeepAliveClientAliveInterval要900和ClientAliveCountMax到35。但这些都行不通!PuTTY 中的 SSH 会话在一段时间后仍然中断!
我关闭了 Linux 服务器防火墙和 …
我想运行如下命令:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Run Code Online (Sandbox Code Playgroud)
我的理解是 ssh-keygen 输出到主目录。我正在使用 Git Bash(Windows,MYSS MINGW64)的联网计算机上工作,其中主目录是我无权访问的目录。我像这样更改主目录:
export HOME=C:/Users/myusername
Run Code Online (Sandbox Code Playgroud)
所以现在当我输入:
echo $HOME
Run Code Online (Sandbox Code Playgroud)
它说:
C:/Users/myusername
Run Code Online (Sandbox Code Playgroud)
但是当我再次尝试运行 ssh-keygen 命令时,它会在我无权访问的目录中运行。我已经查看了一些硬编码路径的配置文件,但找不到任何东西。如何将其更改为指向我有权访问的目录?
我通过 ssh 连接到远程主机(linux、fedora),我想在那里进行 ssh 操作(git 和 bitbucket)。那台机器上正在运行 ssh-agent,
$ ps -e|grep sh-agent
2203 ? 00:00:00 ssh-agent
Run Code Online (Sandbox Code Playgroud)
但是当我想 git 时,它需要我输入密码
$ git pull
Enter passphrase for key '/user/wgong/home/.ssh/id_rsa':
Run Code Online (Sandbox Code Playgroud)
注意:如果我在本地操作那台机器,它不会要求我输入密码
我想生成一个RSA密钥GPG并在SSH登录时使用它。这甚至可能吗?如果是这样,如何?
编辑:请参阅@wwerner 的回答,我没有尝试过,但它似乎是当前的解决方案(截至 2018 年)
标题几乎总结了它。我想通过 SSH 隧道发送 UDP 流量。具体来说,我需要能够通过隧道发送 UDP 数据包,并让服务器能够在另一端将它们发送回给我。我知道如何为 TCP 连接做到这一点。这可以用UDP吗?
我的笔记本电脑有一个填充良好的~/.ssh/known_hosts文件。我想在从我的桌面连接到远程主机时利用它,因为追踪指纹可能是一件真正的苦差事。但是,我似乎无法找到询问ssh-keygen或ssh-keyscan告诉我已知主机的本地已知指纹的方法。有任何想法吗?
你如何禁用可怕的终端命令?
我使用 SSH 访问远程 Ubuntu 服务器,而无需访问物理服务器。我以为我是shutdown在 Ubuntu 操作系统上运行的 NoSQL 服务器中输入“ ”,但实际上我告诉 Ubuntu 服务器关闭。然后我必须告诉服务器管理员我做了什么,以便他可以为我启动物理服务器。那太尴尬了!
我怎样才能避免这种情况再次发生?
ssh ×10
git ×2
linux ×2
putty ×2
bash ×1
colors ×1
fingerprint ×1
gnupg ×1
known-hosts ×1
private-key ×1
public-key ×1
security ×1
shell ×1
ssh-tunnel ×1
terminal ×1
timeout ×1
tunnel ×1
ubuntu ×1
udp ×1
vmware ×1