是否可以通过 ssh 密钥或任何其他不需要 Maven settings.xml 中的用户密码的方法对 Sonatype Nexus 进行身份验证?
我知道 Sonatype Nexus Professional 中有用户生成的令牌,但我们有常规的 Nexus。
这是一个我完全找不到答案的问题:如何配置 sshd 以便任何人都可以在没有密码或密钥身份验证的情况下自由 SSH 进入盒子?目标是允许任何人运行“ssh user@host”并进入盒子,而无需提供密码或配置任何密钥。这甚至可能吗?
在有人问之前,我很清楚这在实践中是一个坏主意,但是,这纯粹是针对我用于学习目的的沙箱服务器。
OpenSSH 支持使用证书颁发机构签署用户密钥。来自man ssh-keygen:
ssh-keygen supports signing of keys to produce certificates that may
be used for user or host authentication. Certificates consist of a
public key, some identity information, zero or more principal (user
or host) names and a set of options that are signed by a Certification
Authority (CA) key
Run Code Online (Sandbox Code Playgroud)
在纯 Linux 环境中,SSH 证书非常易于使用。服务器部分 ( TrustedUserCAKeys)没问题,并且在客户端ssh -i做正确的工作。
我需要能够使用来自 Windows SSH 客户端的 OpenSSH 证书(该项目是在系统管理员使用公司特定的身份验证方案对自己进行身份验证后,向系统管理员 Windows 工作站提供短期 SSH 证书)。
Cygwin 不是一个选项(用锤子杀死一只苍蝇,Windows 管理员可能不接受),PuTTY 不识别 OpenSSH 证书。
还有什么其他选择?
我正在尝试使用 SSH 密钥设置从 ServerA(SunOS)到 ServerB(一些带有键盘交互登录的自定义 Linux)的访问权限。作为概念证明,我能够在 2 个虚拟机之间进行。现在在我的现实生活场景中它不起作用。
我在 ServerA 中创建了密钥,将它们复制到 ServerB,在 ServerA、B 上将 .ssh 文件夹修改为 700。
这是我得到的日志。
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: Peer sent proposed langtags, ctos:
debug1: Peer sent proposed langtags, stoc:
debug1: We proposed langtags, ctos: en-US
debug1: We proposed langtags, stoc: en-US
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: dh_gen_key: priv key bits set: 125/256
debug1: bits set: 1039/2048
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent …Run Code Online (Sandbox Code Playgroud) 以下是我在本地计算机上执行的步骤:
ssh-keygen -t rsa
cat ~/.ssh/id_rsa | ssh root@remotehost.com -p 1234 "cat > ~/.ssh/authorized_keys"
Run Code Online (Sandbox Code Playgroud)
当我做一个ssh root@remotehost.com -p 1234它仍然要求输入密码时:o
root@remotehost.com's password:
Run Code Online (Sandbox Code Playgroud)
为什么会这样?我已经将它添加到授权密钥中,但它仍然要求输入密码。sshd_config:
Port 1234
Protocol 2
SyslogFacility AUTHPRIV
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM no
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem sftp /usr/libexec/openssh/sftp-server
Run Code Online (Sandbox Code Playgroud)
这是结果-vvv:
$ ssh root@remotehost.com -p 1234 -vvv
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb …Run Code Online (Sandbox Code Playgroud) 我的 Fedora 19 x86_64 虚拟机出现问题。
它似乎忽略了我的 4096 位密钥设置。我已将ServerKeyBits指令设置为4096,停止 sshd 服务,删除/etc/ssh/目录中的所有主机密钥,然后重新启动 sshd 服务。它会创建 2048 位的新密钥。我知道这一点,因为当我这样做时,ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub它会2048在另一台机器上返回,而我已经为它返回了4096。
为什么我的 OpenSSH 服务忽略它的ServerKeyBits指令?它似乎并没有忽略其他指令,例如关闭密码身份验证和只允许密钥对身份验证。
我有openssh-6.2p2-7.fc19.x86_64并openssl-1:1.0.1e-37.fc19.1.x86_64安装。
提前致谢。
我的配置文件如下:
# $OpenBSD: sshd_config,v 1.89 2013/02/06 00:20:42 dtucker Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
# This sshd was compiled with PATH=/usr/local/bin:/usr/bin
# The strategy used for options in the default …Run Code Online (Sandbox Code Playgroud) 我正在 Linode 上配置我的第一台服务器并完成他们的设置教程。
在他们的Securing Your Server教程中,它建议使用 ssh 密钥对身份验证并禁用密码身份验证。
我的问题是,如果我禁用密码验证 - 如果我丢失了我的私钥怎么办?我如何才能再次登录我的服务器?
从 Puppet 迁移到 Ansible。就像它没有代理和SSH驱动一样。我只是设置了两个测试虚拟机。一个作为 Ansible 服务器(是的矫枉过正),另一个作为示例客户端(随机 Linux 服务器)。我们所有的服务器仅使用公钥私钥对身份验证。这对于 Ansible 最初来说有些问题。我很(几乎可以肯定)Ansible 可以使用密钥对,但我似乎找不到一个很好的例子。
我通过执行以下操作,专门为 Ansible 创建了一个密钥对
ssh-keygen -t rsa -b 4096
Run Code Online (Sandbox Code Playgroud)
然后我将公钥复制到客户端。当我通过标准 SSH 对其进行测试时,密钥对身份验证效果很好。现在来测试 Ansible。我将测试客户端放在 Ansible 主机文件中,并使用唯一看起来正确的语法来使密钥对正常工作。
[TEST]
10.0.0.5 ansible_ssh_private_key_file=~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
当我尝试只运行一个基本的测试模块时
sudo ansible all -m ping
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息
10.0.0.5 | FAILED => SSH Error: Permission denied (publickey,password).
while connecting to 10.0.0.5:22
It is sometimes useful to re-run the command using -vvvv, which prints SSH debug output to help diagnose the issue.
Run Code Online (Sandbox Code Playgroud)
显然,我对如何设置 Ansible 以使用密钥对的语法或概念性理解是有缺陷的。有什么建议?谢谢
我在 Google Cloud 上有一台用 Bitnami 创建的 Linux 机器。
它运行良好,可以通过 SSH 访问,使用 Web 控制台或腻子。然而,今天突然无法通过 SSH 以任何方式访问它。当我尝试编辑 VM 并更改 SSH 密钥或对其进行任何其他更改时,我收到以下错误消息:
Editing VM instance:"***" failed.
Error:Supplied fingerprint does not match current metadata fingerprint
Run Code Online (Sandbox Code Playgroud)
VM 仍在运行,部署在其上的服务仍在运行,但无法进行任何更改。我还有大约 10 个其他虚拟机,并且所有这些虚拟机仍然具有 SSH 访问权限。
我曾尝试遵循 GC 文档的几个指南,但如果没有命令行访问,几乎没有任何指南可以完成。
linux ssh-keys google-compute-engine google-cloud-platform gcloud
我有两台服务器,
我试图调查如何解决的消息是
无法与
xxx.xxx.xxx.xxx端口协商xxxxx:找不到匹配的主机密钥,他们提供 ssh-rsa、ssh-dss
etc/configconfigauthorized_keys问题是,我是否应该将所有密钥更改为 ECDSA-256 才能解决此问题?是否还有我缺少的此处未提及的其他配置?
当我添加选项时HostkeyAlgorithms +ssh-rsa,几乎所有地方都建议,SSH 要求输入密码而不是检查密钥。