我错误地设置了 ssh 密钥的密码。
但是每次使用密钥时都要输入密码很烦人。
我想删除我的密钥的密码:
$ ssh-keygen -p -f <my/key/file>
Run Code Online (Sandbox Code Playgroud)
但是,我担心密钥会被更改。
由于我以多种方式使用密钥,因此这项工作似乎太危险而无法测试。
该手册页说,该命令将不会改变我觉得关键,但它是不确定的:
-p请求更改私钥文件的密码而不是创建新的私钥。程序将提示输入包含私钥的文件、旧密码和两次新密码。
我使用以下命令生成 DSA 密钥:
ssh-keygen -t dsa
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用 bouncycastle API 来签署数据,如下所示:
KeyFactory keyFactory = KeyFactory.getInstance("DSA");
String privateKeyContent = // the content of the generated file
//init privateKey
byte[] pemContent = null;
PEMParser pemParser = new PEMParser(new StringReader(privateKeyContent));
Object pemObject = pemParser.readObject(); // throws
Run Code Online (Sandbox Code Playgroud)
并得到这个异常
java.io.IOException:无法识别的对象:OPENSSH 私钥
所以我一直在尝试使用此示例将密钥文件转换为 PEM ,并执行:
ssh-keygen -e -f key -m PEM > key.pem
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
do_convert_to_pem: unsupported key type DSA
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题有什么想法吗?
我可以使用一些CLI工具来验证known_hosts的内容吗?也许尝试对其中的所有主机执行ping操作,看看是否可以连接到每个主机?
可能使用ssh-keygen或ssh-keyscan?
为什么eval语句返回
Illegal variable name
$ eval "$(ssh-agent -s)"
Illegal variable name.
Run Code Online (Sandbox Code Playgroud) 我正在尝试生成一对新的 SSH 密钥,但生成 ( ssh-keygen -t rsa -C "my@email.com" -b 4096) 后,指示文件夹中的现有密钥不会更新,尽管状态为“您的标识已保存在 ir_rsa2 中并且您的公钥已保存在 ir_rsa2.pub 中”以及控制台中新生成的密钥指纹,因此当将密钥添加到 git 存储库时,我收到错误'指纹已被占用'。可能是什么问题呢?
先感谢您。
我正在寻找使用 将 ed25519 私钥转换为 rsa 私钥ssh-keygen。
我发现这个有用的指南,但我无法弄清楚如何指定输入格式为 ed25519 并且导出格式应为 rsa。
我尝试了多种不同的方法来尝试匹配概要和标志的描述,但每次尝试时,我都会收到“ Too many arguments”错误ssh-keygen。
我还想找到从 ed25519 私钥生成公钥的命令,以验证它是否有效。
阅读Github的“ 生成SSH密钥”教程,我在第2步:生成新的SSH密钥中看到了这一点:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Run Code Online (Sandbox Code Playgroud)
令我困扰的是"your_email@example.com"。我知道这只是一条评论,甚至是可选的。但是我想知道,将您的电子邮件地址放在这里是否安全?因为我认为建议您放置机器而不是电子邮件,例如"my-machine@home"。
在该教程之后,我已经使用了公共密钥,因此我的电子邮件地址在我的一些公共密钥中。我应该修理吗?还是没有问题?
我有两个 EC2 实例,我正在尝试查看是否可以通过 ssh 从一个实例连接到另一个实例。
如果我尝试从我的 Windows 实例到 PuTTY,它们中的每一个都可以工作(通过提供 .ppk 文件)。
现在,两个实例都关联到相同的密钥对,并且如果我检查其中.ssh/authorized_keys是否存在相同的公钥(显然是因为它引用了我在 AWS 中生成的相同密钥对)。
我尝试过,ssh <other host>但它要求我输入不存在的密钥密码。
所以我现在所做的是从实例 A 创建一个密钥对ssh-keygen,然后我尝试
ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
Run Code Online (Sandbox Code Playgroud)
但它给了我这个错误:
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
如果您有任何想法,欢迎提出。
我尝试阅读Artifactory用户指南,但有关SSH身份验证的说明并不清楚.有人可以解释如何在Artifactory中进行SSH身份验证吗?
我正在尝试使用 git bash ssh-keygen 创建 ssh 密钥。设置文件名和密码后Saving key "sshKey" failed: Permission denied出现错误。
$ ssh-keygen -t rsa -C "email@bla.com" -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/user1/.ssh/id_rsa): sshKey
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Saving key "sshKey" failed: Permission denied
Run Code Online (Sandbox Code Playgroud)
有什么想法如何解决这个问题吗?
有没有办法ssh-keygen在PowerShell中自动化该方法?我正在尝试使用以下代码,但它需要用户输入密码.
# Create your GitHub SSH Key
$MyEmailAddress = "some.user@github.com"
if (! (Test-Path ("~/.ssh/id_rsa_test"))){
ssh-keygen -t rsa -C "$MyEmailAddress" -f "id_rsa_test"
}
Run Code Online (Sandbox Code Playgroud)
我尝试输入密码开关,但后来却抱怨密码为空.
# either
ssh-keygen -t rsa -C "$MyEmailAddress" -f "id_rsa_test" -N ""
# or
ssh-keygen -t rsa -C "$MyEmailAddress" -f "id_rsa_test" -N "$null"
Run Code Online (Sandbox Code Playgroud)
我的密钥中不需要密码.
ssh-agent,ssh-add在运行PowerShell / Posh-Git的Cmder上的所有工作
我添加了C:\Program Files\Git\usr\bin环境变量
ssh-keyen 在Git Bash上运作良好,
如何使ssh-keygen也可以与Powershell / Posh-Git一起使用?
编辑:
事实证明,该错误是由于PowerShell中的ssh-keygen正在运行ssh-keygen.bat文件而不是文件ssh-keygen.exe
因此,如下所述设置别名是一种方法。
我使用Set-Alias而不是New-Alias因为New-Alias要求我不时重置我的$ profile,这很奇怪。
要重置,请键入 . $profile
我正在尝试使用 openssl 生成安全的私钥和公钥,以便与我的云托管提供商一起使用,但是当我这样做时,无法识别来自 openssl 的公钥输出。
$ openssl genrsa -out private.pem -passout file:password.txt 2048
Run Code Online (Sandbox Code Playgroud)
生成RSA私钥后,2048位长模数,然后
$ openssl rsa -in private.pem -passin file:password.txt -pubout -out public.pem
Run Code Online (Sandbox Code Playgroud)
它编写了 RSA 公钥。输出是这样的:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuefPvX5Bih6GYbr1eTNf
Fa++DvhHg4nxcXZAor7gNEM1+XPY2wxG2r2g/Jub6OWHd8GDAf6SBCCld+alC9WS
KnAd2qz34yBzG4pJ5/tLux1yX5k45BPTcTHfZGmFlAxsSNTZVh5Zh9KYUpsklKOW
2Pb5gwlMvweIoqf0lqrNqX8agDWzAn4bRbW8ZeNKUuNuccx4PlFwMg4lEcPypcCL
HPAHGiQTR1xZ/jlohFMIH1cGCBVC4kuaEtUi3Qer9wzuvh376RQPnKD0jJgraiDM
pSrdMeH+0eJfqckM8pJ99F/kfKWcGtk6l1AJX511xsPLDTHxaP/ry8zlaAJ1vH9o
3wIDAQAB
-----END PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)
这是标准格式,它适用于其他用途,但所有云和托管服务提供商都需要这样的公钥:
ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==
Run Code Online (Sandbox Code Playgroud)
这是他们识别的唯一有效格式。
我知道 ssh-keygen 可以轻松完成所有这些工作,但我使用的是当前最新的 openssl 版本 1.0.2h,其中包含针对 Google 和 Red Hat 员工指出的一些漏洞的安全修复程序。
那么如何使用从 openssl 生成的密钥获取 ssh-keygen 公钥格式呢?
ssh-keygen ×13
ssh ×11
git ×3
ssh-keys ×3
powershell ×2
amazon-ec2 ×1
artifactory ×1
bash ×1
dsa ×1
email ×1
eval ×1
java ×1
key-pair ×1
openssl ×1
pem ×1
posh-git ×1
ssh-config ×1
unknown-host ×1
windows ×1