标签: openssh

自动重新连接交互式 SSH 会话

自动重新连接交互式 SSH 会话以在终端上重新建立 shell 的最佳方法是什么?我查看了 autossh,但这似乎专用于端口转发(我不需要)。

有没有任何 shell-fu 或实用程序允许这样做?

openssh shell-script events

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

尝试连接到 Windows Server 时“服务器拒绝我们的密钥”

我正在尝试使用 PuTTY 将远程桌面从笔记本电脑安全地连接到台式计算机,到目前为止,我已经成功地在没有密钥的情况下通过正确的端口建立隧道,只需使用我的用户名和密码。这些都是 Windows 机器,运行 Windows 10。

我使用 PuTTYGen 生成了一个密钥,每次我都会将其复制并粘贴到public keyC:\Users\Chris\.ssh\authorized_keys在服务器上),如下所示:

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQBl8kTxv8cxW5tSvNjId+qrype1ZA+zEO3Qag+BHhlMvvtrx/faZp8XMXbSqulZVqXNFnN0ADAaAv2hMltP+rft4R8X9qaJSIlYdPo8F3BmV5G2mu+AQKnOrGooLfwc2oa4qOfHJMqzciFqVVTAOjo3BQ3ZtZnN23os1WfiRCcwlNZgrRlgpUPkA/CgaWTDnlDpxvNZp3fVia8pDvLlqVIIn+Fu7UEJi/pNDUiexrky7nR0JzIL3ZAPAu6U26WLJA7fYw7nlySzz/BuxiPyIzeRT+qiHQuwf2yOkCXNIeQQjgLsbw0eS67TWC7pa6NbLa0KqmgDChdSNsSB5aKTMh3T rsa-key-20190410
Run Code Online (Sandbox Code Playgroud)

然后,在客户端上,我选择私钥文件Settings > Connection > SSH > Auth > Private key file for Authentication > C:\Users\Chris\Desktop\SSH-KEY\key1.ppk

我进行了双重和三次检查:我粘贴到的公钥与authorized_keys加载到 PuTTY 中的私钥相对应。

当我尝试连接会话时,出现以下错误:

Using username "Chris".
Server refused our key
Chris@my.pub.lic.ip's password:
Run Code Online (Sandbox Code Playgroud)

我找不到更多文档或错误代码。

不存在日志文件,但是当我手动启用日志记录并在连接后打开它时,客户端的文件中存在此文件:

Using username "Chris".
Server refused our key
Chris@my.pub.lic.ip's password:
Run Code Online (Sandbox Code Playgroud)

除了生成和使用从服务器和客户端生成的密钥对之外,我还尝试过使用Chris和。chris

我后来在以下位置找到了服务器的附加日志文件C:\ProgramData\ssh\logs\sshd.log

1184 2019-04-10 12:38:48.995 Server listening on :: port 22.
1184 2019-04-10 12:38:48.995 Server …
Run Code Online (Sandbox Code Playgroud)

ssh authentication openssh putty ssh-keys

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

SSH:“没有这样的身份”

我在让 SSH 在我的 Linux 机器上工作时遇到了一个非常奇怪的问题。我有一个由 OpenSSH 密钥标识的无密码 git 用户。如果我尝试从网络上的相同或不同的 linux VM ssh 进入它,它会失败(有关完整的调试信息,请参见下文)。

但是现在,奇怪的是:我可以使用完全相同的密钥从我的 Windows 7 机器上很好地 ssh 这向我表明我们可能正在查看客户端问题。如果服务器上的密钥不知何故失灵,我应该无法从任何地方连接。

这几天我一直在泥泞中磨我的轮子。关于这个问题有很多话题,但没有一个解决方案有效或应用。

我已经尝试过的常见解决方案:

  1. ~/.ssh 权限已在客户端和服务器上正确设置。

    具体来说, ~/.ssh/* 设置为 600(一个线程建议将authorized_keys(服务器)更改为644,但没有效果)。

    ~/.ssh 目录本身设置为 700。

    ~ 中的所有内容都归同名用户/组所有。

    客户端(/home/kris/.ssh):

    drwx------  2 kris kris 4096 Apr 11 01:17 .
    drwx------ 38 kris kris 4096 Apr 11 01:29 ..
    -rw-------  1 kris kris  458 Apr 11 16:22 config
    -rw-------  1 kris kris 1675 Apr 10 22:29 id_rsa_kriscraig_git
    -rw-------  1 kris kris 1675 Apr 11 01:08 …
    Run Code Online (Sandbox Code Playgroud)

linux ssh centos git openssh

8
推荐指数
1
解决办法
2万
查看次数

如何在 OpenSSH 中指定密钥交换方法?

我试图了解 OpenSSH 如何决定使用哪种密钥交换方法。我没有看到的是如何指定方法。此外,我知道每个 ssh 服务器/客户端至少需要支持两种方法:diffie-helleman-group1-sha1and diffie-helleman-group14-sha1,但我不清楚服务器和客户端如何在两者之间进行选择,因为每个程序都必须同时支持这两种方法。我认为在每种情况下diffie-helleman-group14-sha1都会使用它,因为它具有更大的 MODP 组。

我可以指定密码和 MAC:

ssh <user@ip> -c aes256-cbc -m hmac-sha1
Run Code Online (Sandbox Code Playgroud)

但是查看联机帮助页我没有看到密钥交换的等效选项。有人可以 1) 告诉我一种指定方法 2) 解释 ssh 如何选择该方法吗?(我怀疑它总是选择列表中的第一个,这意味着永远不会选择第二个)

security ssh openssh

8
推荐指数
1
解决办法
4万
查看次数

SSHD 消耗 100% 的 CPU(数百个进程)- 不会死

最近我注意到我管理的一些系统上的 SSHd 将开始产生不可停止的进程,这将消耗大量的 CPU。

系统调用显示所有进程都在“运行”并且不是僵尸进程或等待它们的父进程杀死它们(至少据我所知不是这样)。

在此处输入图片说明

我已经尝试了一切来终止这些进程......迄今为止我发现的唯一可靠的方法是重新启动整个服务器(这并不理想)。我试过为 dropbear 切换 openssh-server,但它的行为方式与我的应用程序需要的方式不同。

我试过了:

killall -9 sshd
Run Code Online (Sandbox Code Playgroud)

通过它的 id 杀死每个 sshd。很少有其他杂项(htop + sigterm 等...)

我喜欢一些想法来终止这些进程或解决导致这种情况的原因。

linux openssh

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

带有协议 2 密码和 OpenSSH 7.1 服务器的“糟糕的 SSH2 密码规范”

我正在尝试确定 OpenSSH 7.1 服务器发现哪些密码具有攻击性。在OpenSSH的7.1服务器在使用OpenSSL 1.0.2d建

下面,我添加了下面的换行符以提高可读性,但行中没有空格或换行符( afterCiphers除外):

$ sudo /usr/local/sbin/sshd -t -f /usr/local/etc/sshd_config
/usr/local/etc/sshd_config line 28: Bad SSH2 cipher spec 'chacha20-poly1305@openssh.com,\
aes128-gcm@openssh.com,aes256-gcm@openss.com,aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,\
aes192-cbc,aes256-cbc'.
Run Code Online (Sandbox Code Playgroud)

OpenSSH 7.1 服务器认为哪些密码具有攻击性?


大多数注释行已从sshd_config下面删除。

$ cat /usr/local/etc/sshd_config
#   $OpenBSD: sshd_config,v 1.97 2015/08/06 14:53:21 deraadt Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.
...

# The default requires explicit activation of protocol 1
Protocol 2

# HostKeys for protocol version 2
HostKey /usr/local/etc/ssh_host_ed25519_key …
Run Code Online (Sandbox Code Playgroud)

ssh openssh macos

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

kex_exchange_identification:读取:对等方重置连接。连接适用于其他 NIC/子网

我重新安装了一个虚拟机(CentOS7),现在出现这个错误。VM 有两个位于不同子网上的适配器。
有趣的是,在修复了预期的 MITM 警告后,ssh 在一个子网上运行良好

ssh -v 显示:

OpenSSH_8.0p1, OpenSSL 1.1.1c  28 May 2019
debug1: Reading configuration data /home/user/.ssh/config
debug1: /home/user/.ssh/config line 6: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: resolving "foreman" port yy
debug2: ssh_connect_direct
debug1: Connecting to foreman [xxx.xxx.xxx.xxx] port yy.
debug1: Connection established.
debug1: identity file /home/sam/.ssh/id_rsa type 0
debug1: identity file /home/sam/.ssh/id_rsa-cert type -1
debug1: identity file /home/sam/.ssh/id_dsa type -1
debug1: identity file /home/sam/.ssh/id_dsa-cert type -1
debug1: identity file /home/sam/.ssh/id_ecdsa …
Run Code Online (Sandbox Code Playgroud)

networking ssh openssh

8
推荐指数
1
解决办法
2万
查看次数

Marketing Cloud SSH 密钥生成:PuTTY 和 ssh-keygen 之间不一致

在与 Salesforce 支持人员反复交流了两个月后,我终于弄清楚,为了在密钥管理中上传 SSH 密钥,您必须使用 PuTTYgen,而不是ssh-keygen(在 Mac 上)。

有人能向我解释如何生成ssh-keygen与 PuTTY 相同类型的 RSA 私钥吗?

以下是 PuTTYgen 创建的示例密钥(Salesforce Marketing Cloud 会很乐意接受):

-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEAj+derXf2g3PmS2+H+UCuPBt3YV29BUdFICznAcZUJxoMbf2q
670zwpIqoMt2+KnJxWMbs+miYpAjUJBwgr3HuFa2XrrDUJISDffXRpucOSArqSdz
6k6PyKKgZCqx1Cp7BdDsMB6NwJURfS/iqgcVUTpU0Q3kclySWgvspkaW5JwGM513
Bzt6ECZXYjbPC/3w0/kS8COBQFdOMVDhEvHoMoK6yHCnBTC+bRVemqV3WHDMYNbX
4Gg5Z7hjsXtrEgMMYtOlQrF/mZkEdcFVKpqujavl26mwyMG06FRZUQYvPmmcgGhy
J5PuwH2MJjo63vEflAf0MKBprJXSySmmTD0QqwIBJQKCAQBRrNTe/uXb59W8HLT1
QGLj2DzWZaKiIYgZLj3sQCHsrethBZhcSMpZrOfDC7I6Gy1UWthfMZOEDJ5r/vO/
038xRfjN+0xCfGscr0LVDDYSlbfqYoAPXQV/tj9bci2UGBxPaL1na0mI+qkPs2T4
t+mBIRth5UpOvutH3UEgGjn3XpoXggnos352fnklPrglwAmYnmaurzULUA8MeRDt
C00/b8ErmLVOdcJcccCdGsTkU0KBXZPtaw1sVNBF7hASoQuoNpmqOFOo9KfZzro+
ivAXCpmCQSJ3T3qMACIVVg4UxprpgROh6kfiHzIwLZtFEhVH/mQn726WZfbRoxbm
m20tAoGBAO6VYMtUEPaZ54EHAKKPovZLMzHgq3OX9vJN3d0z49zPxbTrtAY6cMVw
gQV2miYs3y46mdiC5gO/Q2paEBpM4JMXgPG8hWjXj0c4KyE4IE3eDJ69+sZsqEeS
ugejb49HOPsvNGvyyMfj6iTA5H2dItCJ8G529/OBx2MKiEU1PSnBAoGBAJpooLKf
Q5h0tVY+KTEtpxpjfgeSjH9v335TkYSGjGrmx1wuZm2Jp1ll5E7qq2P6zij5Kmhy
Drx734piTfd/vZWEeJiXNo+MKerWNijBPHCHBoHKeRtZH63MpkZjbLfq90c74uOd
nBXspZUQcxlmlhEpuNVCiLNSlLCuyyyM4d1rAoGBAKE0f6v6iACRgL725MDdl59+
6z1gc9h7b4Ef2xjrtaMI7V6Ra8zbYPQblXJk5LICpKKx+T9DsCwLnEDwvsWpkNIW
zL8C1q6ffHw6tVuidrEnVKKcCk64HqzmmV8bZw3IVu7oizQua/yuwMy5ryRxF4X8
Vlh55c4LlI8HHc3ls7RtAoGALefBEoJgND5fbKqyTOQPFa7gR3DB/F+HohjYPCgA
O3UK1jdO4kuEx4z+r62M5l9SDC5mjcELTMrhl9gJV2sqhmWnT/WamWEFiwFqDB3F
3EPRgIhNhKvLJdUO1qfv46a4N8WyJ/5srJJ2apYwDnhxzcBLtQXxShGh06mWWVpQ
/KMCgYAauXmOmtv+nq+wZD8Iz8cEZVB4T7Hq0+2rdLuHRZK8NiqEK+TJWqSh3ASU
QplcsWdhI6lyAj52A9mHzl3KMwXpdJaQzsb1Qy6hsNrjp80OpUwdFn47HR7nM2de
+dTldYpwQ+mF98P3INN0VeNBj2Zon+/1NAjDxEMDur1tEn/EGw==
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

ssh-keygen -t rsa -b 2048这是给我的关键:

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAQEA4EEMDSLlscX+/ZMwE/+VNuNYyWPMOks1uW/76zRyYmEmYNPh+WC6
m+/TtisPrsHqmw8WxyGSsp/zDwQ8NBLIbuXOmwQYSwVeveqhcowY/thpqKJ5kmp06gCIH6
rCh8b5+rf8i53UsLrPK1RwDoTWAK6Pn4F74OIMUJbY8pRmRlgJ/iENTkzXHBVVtVq5yltP
aG3CuVB56TRV8O//KMEvaEum45okj9PuMTn4okCYr7k/BUIrGYgl2GHsb7CTLP1LOjSV6q
XhhiTAJvEriGsivSH9wTBkmRXZtwJMCn8i5SfaDRyQ/cjIFKGgXJQv6pXKXWBk0R0YsN7q
xCC03lBMoQAAA9BccOaWXHDmlgAAAAdzc2gtcnNhAAABAQDgQQwNIuWxxf79kzAT/5U241
jJY8w6SzW5b/vrNHJiYSZg0+H5YLqb79O2Kw+uweqbDxbHIZKyn/MPBDw0Eshu5c6bBBhL
BV696qFyjBj+2GmoonmSanTqAIgfqsKHxvn6t/yLndSwus8rVHAOhNYAro+fgXvg4gxQlt
jylGZGWAn+IQ1OTNccFVW1WrnKW09obcK5UHnpNFXw7/8owS9oS6bjmiSP0+4xOfiiQJiv
uT8FQisZiCXYYexvsJMs/Us6NJXqpeGGJMAm8SuIayK9If3BMGSZFdm3AkwKfyLlJ9oNHJ
D9yMgUoaBclC/qlcpdYGTRHRiw3urEILTeUEyhAAAAAwEAAQAAAQA5TgXxWWiOvATD8ZfI
lHgh1Yi7tcfbYZqx7z7VxMox/5daCOrm2eP1sxxLocdZJe54fyuX6SlegecPgEqOF/ql9A
2OqUY37YBfUZS9+7TrcovVbudYFeIYZdhjFzSsk5kPi3J6jvNp0eLctLAJ1cIF3JWQ8fqg …
Run Code Online (Sandbox Code Playgroud)

openssh putty ssh-keys salesforce

8
推荐指数
1
解决办法
1913
查看次数

通过 SSH 进入 MacOS 时设置 PATH

我的问题是

$ ssh localhost fswatch          
bash: fswatch: command not found
Run Code Online (Sandbox Code Playgroud)

当没有 SSH 命令(即 fswatch)时工作正常。

我发现 SSH 会话中的 PATH 是默认的 Mac 的

$ ssh localhost echo \$PATH        
/usr/bin:/bin:/usr/sbin:/sbin
Run Code Online (Sandbox Code Playgroud)

因为没有 SSH

$ echo $PATH
/Users/kyb/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Run Code Online (Sandbox Code Playgroud)

我真的不记得我是如何设置 PATH 的,但可以肯定的是~/.bashrc~/.bash_profile不要编辑 PATH 变量。有一个配置文件/etc/paths

$ cat /etc/paths         
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
Run Code Online (Sandbox Code Playgroud)

Homebrew、npm、pip 通常将程序安装到/usr/local/bin,因此所有已安装的程序都在那里,我无法通过ssh localhost command我的 MacOS 访问它们。Linux下没有问题。

所以我的问题是如何配置 OpenSSH 以使用来自/etc/paths和 的PATH/etc/paths.d?

我也尝试破解:

$ ssh localhost sh -lc 'echo empty;echo $PATH'

/usr/bin:/bin:/usr/sbin:/sbin …
Run Code Online (Sandbox Code Playgroud)

ssh openssh macos

8
推荐指数
1
解决办法
6203
查看次数

如何在 Windows Server 上的 OpenSSH 中限制用户使用 sftp?

我正在使用从https://github.com/PowerShell/Win32-OpenSSH/releases下载的 OpenSSH 。

我的目标是设置一个 ssh 服务器,允许 sftp 文件传输而无需 ssh 访问。根据OpenSSH提供的官方文档,Windows从7.7版本开始应该支持这一点。已发布,应该在 sshd_config 中设置限制,我尝试使用该文件一段时间,但我无法限制自己只能访问子文件夹,这就是我的配置文件中的内容添加:

Subsystem   sftp    sftp-server.exe
ForceCommand internal-sftp 
ChrootDirectory c:\users\myusername 
AllowTcpForwarding no 
PermitTunnel no
GatewayPorts no
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么这不起作用?或者我不能像这样设置 SFTP 访问?

另一种选择是禁用 SSH 连接。如何在 Windows 中使用 OpenSSH 实现这一目标?

windows ssh powershell openssh sftp

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