我发现ssh-keygen("ssh" package) 从puttygen(" putty " package)产生不同的密钥。
如果我使用ssh-keygen某些 SSH 服务器创建公钥和私钥将不接受我的密钥。如果我puttygen只使用一台服务器创建密钥,则接受它。
为什么 Linux 存储库不为它提出一些通用的解决方案(包)?
我发现了另一个包ssh-3.2.9.1,它创建了与 PuTTY 一起使用的密钥。但是为什么 SSH 中没有任何方便的解决方案呢?
我在 AWS 中构建了一个新的 Ubuntu 服务器。现在由于某种原因,我在其他 Ubuntu 服务器上工作的私钥对她不起作用了。auth.log 中的错误是
userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]
这只是 Putty 的问题,如果我尝试通过 Linux 工作站进行日志记录,任何机器都不会出现任何问题。
我看到的区别是新服务器是
Ubuntu 22.04.1 LTS 运行OpenSSH_8.9p1 Ubuntu-3, OpenSSL 3.0.2 15 Mar 2022
工作(旧)服务器是
Ubuntu 20.04.4 LTS(Focal Fossa)运行OpenSSH_8.2p1 Ubuntu-4ubuntu0.4, OpenSSL 1.1.1f 31 Mar 2020
此版本的 OpenSSH 有什么变化吗?如何让腻子再次工作?
我正在尝试通过 ssh 连接到远程机器,尝试失败:
$ ssh -vvv admin@192.168.100.14
OpenSSH_7.7p1, OpenSSL 1.0.2o 27 Mar 2018
.....
debug2: ciphers ctos: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
debug2: ciphers stoc: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,zlib@openssh.com
debug2: compression stoc: none,zlib@openssh.com
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: rsa-sha2-512
Unable to negotiate with 192.168.100.14 port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Run Code Online (Sandbox Code Playgroud)
据我了解日志的最后一个字符串,服务器提供使用以下 4 种密码算法之一:aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc. 看起来我的 …
有没有一种简单的方法可以将 SCP/SFTP 用户限制在目录中?我遇到的所有方法都要求我通过复制二进制文件来设置 chroot jail,但我认为这没有必要。
我似乎找不到这个简单问题的答案,我需要一些合规文档。
在 CentOS 6.5 (OpenSSH 5.3p1-94.el6) 的默认安装中,用户的 SSH 会话闲置多长时间后会终止?我相信可以设置以下内容来增加空闲超时,但默认情况下它们被注释掉了。
$ grep -i alive /etc/ssh/sshd_config
#TCPKeepAlive yes
#ClientAliveInterval 0
#ClientAliveCountMax 3
Run Code Online (Sandbox Code Playgroud)
另外,是否有一个命令可以转储当前sshd设置的列表?我看不到任何东西man sshd。
我尝试在 Kali Linux 系统(版本 16.0-kali6-amd64,2022-03-23)上使用 SSH 命令时遇到问题。我正在尝试使用 OpenSSH 私钥进行身份验证。
我首先使用以下命令:
ssh -i id_rsa root@<ip>
Run Code Online (Sandbox Code Playgroud)
但是,这导致了以下错误:
无法与端口 22 协商:未找到匹配的主机密钥类型。他们的报价:ssh-rsa、ssh-dss
经过一番研究,我尝试使用以下命令来解决该问题:
ssh -oHostKeyAlgorithms=+ssh-dss -i id_rsa root@<ip>
Run Code Online (Sandbox Code Playgroud)
但使用此命令时,即使我打算使用 id_rsa 密钥进行身份验证,它也会提示我输入密码。
在详细输出中,我注意到以下消息:
然后,身份验证过程尝试使用密码并提供提示。
我需要有关使用 OpenSSH 私钥进行 SSH 身份验证的帮助。
我对 ~/.ssh/config 工作方式的理解是,每个 'Host' 行对配置文件中该点之后的任何主机匹配生效。
我有许多需要连接的个人服务器和工作服务器。我正在尝试执行以下操作:
# 通用设置 控制大师自动 控制路径 ~/.ssh/controlmaster/%r@%h:%p ForwardAgent 是 ForwardX11 是 GSSAPI身份验证无 PubkeyAuthentication 是 # 个人服务器 主持人 * 用户 harleypig IdentityFile ~/.ssh/personal_id_rsa 主机host1 主机名 host1.com 主机host2 主机名 host2.com # 工作服务器 主持人 * 用户 alan.young IdentityFile ~/.ssh/work_id_rsa 主持作品1 主机名 work1.companyserver.com 主机工作2 主机名 work2.companyserver.com 主持人 * 用户 devuser 主机 dev1 主机名 dev1.companyserver.com 主机 dev2 主机名 dev2.companyserver.com
文档似乎表明 host1 和 host2 应该使用“personal_id_rsa”和用户 harleypig。work1、work2、dev1 和 dev2 应使用“work_id_rsa”,前两个应为用户“alan.young”,而 dev1 和 dev2 应为用户“devuser”
然而,这并没有发生。无论我首先放置什么“主机 *”,都是以下所有主机尝试连接的。我是否误解或遗漏了什么?
有没有办法将现有的 OpenSSH 密钥对转换为 SSH2(ssh.com 格式)密钥对?
UPD:因为有一些关于ssh-keygen突然出现的答案,我会解释我来自哪里(这也是“你试过什么?”的一个很好的答案)。
$> diff --report-identical-files <(ssh-keygen -e -f ~/.ssh/id_dsa) <(ssh-keygen -e -f ~/.ssh/id_dsa.pub)
Files /tmp/zshAGGWAK and /tmp/zshPZiIr6 are identical
Run Code Online (Sandbox Code Playgroud)
换句话说,ssh-keygen为私有和公共输入密钥返回相同的密钥(原始文件的哈希值明显不同,我已经检查了两次以确保它们是有效的私有密钥和公共密钥)。似乎ssh-keygen只为私人或公共输入密钥生成公钥。
我做错了还是正常行为?
今天,在 Debian Stretch 中进行更新后,在ssh使用我当前的配置重新启动服务时,它开始显示这些警告:
/etc/ssh/sshd_config line 17: Deprecated option KeyRegenerationInterval
/etc/ssh/sshd_config line 18: Deprecated option ServerKeyBits
/etc/ssh/sshd_config line 29: Deprecated option RSAAuthentication
/etc/ssh/sshd_config line 36: Deprecated option RhostsRSAAuthentication
[....] Restarting OpenBSD Secure Shell server: sshd
/etc/ssh/sshd_config line 17: Deprecated option KeyRegenerationInterval
/etc/ssh/sshd_config line 18: Deprecated option ServerKeyBits
/etc/ssh/sshd_config line 29: Deprecated option RSAAuthentication
/etc/ssh/sshd_config line 36: Deprecated option RhostsRSAAuthentication
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
在 OpenSSH 7.4 中使用 Debian 9
我的.ssh/config文件中有以下条目
Host AAA
User BBB
HostName CCC
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p
Run Code Online (Sandbox Code Playgroud)
以上允许我通过相同的 ssh 连接多路复用多个 ssh 会话,而无需每次需要新会话时都输入密码(只要主连接保持打开状态)。
但是,我注意到,一旦我拥有相对较高的多路连接数(~7),就无法向同一个多路连接添加更多会话,并且开始出现以下错误:
> ssh -X AAA
mux_client_request_session: session request failed: Session open refused by peer
Password:
Run Code Online (Sandbox Code Playgroud)
为什么我收到这个错误?我可以在同一连接中复用的 ssh 会话数量是否有限制?我可以更改该限制吗?那会是个坏主意吗?