标签: ssh

如果 SSH 闲置了一段时间,如何防止它断开连接

我有一个到一台机器的 ssh 连接,该连接在 30 分钟没有用户输入后被该机器断开。但是,如果我开始类似的操作top,连接将保持活动状态。由于这是客户端的机器,我无法重新配置该机器的 SSH 服务器。所以我正在寻找一种方法来自动检测空闲并启动类似top. 一种 Bash 的“屏幕保护程序”。

我知道我可以用 来做到这一点screen,但不幸的screen是没有安装,而且我无法安装软件。所以我需要使用 Bash 提供的东西。

明确地说:我正在寻找一种解决方案,我在登录后启动一次,然后我想使用该终端,走开,两小时后回来继续工作,在走开之前不输入任何内容。此外,我不希望隧道的东西(为此我推荐伟大的工具sshuttle

有任何想法吗?

linux ssh bash

94
推荐指数
3
解决办法
13万
查看次数

列出打开的 SSH 隧道

我在我的 linux 机器上使用了很多到各种服务器的 SSH 隧道(用于连接到数据库、Web 服务器等),通过 shell 脚本查看当前打开的隧道列表会非常方便。

我可以通过 netstat 上的 grep 识别本地连接:

netstat -n --protocol inet | grep ':22'
Run Code Online (Sandbox Code Playgroud)

但这不会向我显示它连接到的远程端口(显然包括没有隧道的标准 SSH 连接)

更新:答案很好,但没有显示我连接的远程端口。例如,我经常有一条通向 mysql 的隧道,比如 localhost:3308 映射到服务器上的 :3306。通常我可以通过我选择的本地端口来猜测,但同时访问这两个端口会很好。

有任何想法吗?

ssh shell ssh-tunnel

90
推荐指数
5
解决办法
20万
查看次数

PuTTY 网络错误:软件导致连接中止

我有一个奇怪的问题:当我使用 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 之后,似乎所有不好的事情都发生了!

这个问题的原因可能是什么,如何解决?

补充

我进行了谷歌搜索并应用了所有方法来提供帮助,包括:

  1. 启用 sshd TCPKeepAlive
  2. sshd的设置ClientAliveInterval900ClientAliveCountMax3
  3. 将 PuTTY 连接设置“保持活动之间的秒数”设置为5

但这些都行不通!PuTTY 中的 SSH 会话在一段时间后仍然中断!

我关闭了 Linux 服务器防火墙和 …

linux vmware ssh timeout putty

90
推荐指数
5
解决办法
50万
查看次数

如何更改 ssh-keygen 输出的目录?

我想运行如下命令:

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 git

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

当我在远程主机上进行 ssh 操作时,如何避免被问到“输入密钥的密码”?

我通过 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)

注意:如果我在本地操作那台机器,它不会要求我输入密码

ssh git

87
推荐指数
6
解决办法
22万
查看次数

GPG 和 SSH 密钥可以互换吗?

我想生成一个RSA密钥GPG并在SSH登录时使用它。这甚至可能吗?如果是这样,如何?

编辑:请参阅@wwerner 的回答,我没有尝试过,但它似乎是当前的解决方案(截至 2018 年)

ssh public-key gnupg private-key

85
推荐指数
4
解决办法
5万
查看次数

通过 SSH 隧道的 UDP 流量

标题几乎总结了它。我想通过 SSH 隧道发送 UDP 流量。具体来说,我需要能够通过隧道发送 UDP 数据包,并让服务器能够在另一端将它们发送回给我。我知道如何为 TCP 连接做到这一点。这可以用UDP吗?

ssh tunnel udp

84
推荐指数
6
解决办法
13万
查看次数

如何从 .ssh/known_hosts 中提取指纹?

我的笔记本电脑有一个填充良好的~/.ssh/known_hosts文件。我想在从我的桌面连接到远程主机时利用它,因为追踪指纹可能是一件真正的苦差事。但是,我似乎无法找到询问ssh-keygenssh-keyscan告诉我已知主机的本地已知指纹的方法。有任何想法吗?

security ssh fingerprint known-hosts

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

如何更改 PuTTY 上的配色方案?

我正在使用PuTTY从家里的 PC 到工作中的 Linux 计算机使用PuTTY进行 SSH 连接,但是某些文本(文件夹名称)是黑底蓝字,几乎无法阅读。如何更改配色方案?

我家里的电脑装有 Windows 7,以防万一。

ssh colors putty color-profiles

83
推荐指数
5
解决办法
29万
查看次数

如何禁用可怕的终端命令?

你如何禁用可怕的终端命令?

我使用 SSH 访问远程 Ubuntu 服务器,而无需访问物理服务器。我以为我是shutdown在 Ubuntu 操作系统上运行的 NoSQL 服务器中输入“ ”,但实际上我告诉 Ubuntu 服务器关闭。然后我必须告诉服务器管理员我做了什么,以便他可以为我启动物理服务器。那太尴尬了!

我怎样才能避免这种情况再次发生?

ssh terminal ubuntu

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