【问题标题】:automate ssh-keygen for github in powershell在 powershell 中为 github 自动化 ssh-keygen
【发布时间】:2020-04-26 16:43:23
【问题描述】:

有没有办法在 powershell 中自动化 ssh-keygen 方法?我正在尝试使用以下代码执行此操作,但它需要用户输入密码。

# 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"

}

我尝试输入密码开关,但它抱怨密码为空。

# 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"

我不想在我的密钥中输入密码。

PS:我使用的是poshgit,它依赖于mysysgit

【问题讨论】:

  • 请注意,这里的答案 (stackoverflow.com/a/14946700/124069) 无效,因为 -N '' 在 Windows 上引发验证错误,因为 -N 是 null
  • 我越深入,我就越想与mysysgit 抛出null 验证错误有关,而这可能不应该。我已经发布了一个“问题”github.com/msysgit/msysgit/issues/132
  • 也许我有点偏离基础,但在创建证书时确实使用密码似乎有点重要 - 是的,我知道并理解每个组织/业务的要求都不同。但是,当您声明要从输入屏幕中删除密码时,这可能会触发审核。这里只是我的几个想法。肯特
  • 为什么还要自动化 ssh-keygen?你想解决什么问题?
  • @Cupcake 我正在编写一个 Boxstarter 脚本来自动部署和配置虚拟机中的开发计算机。连接 github 时,每次推送都得输入密码很痛苦。有很多人通过[Type a passphrase] 部分只是ENTERhelp.github.com/articles/generating-ssh-keys

标签: git powershell ssh-keygen


【解决方案1】:

PowerShell 似乎删除了空双引号,并且可能需要转义它们。使用 """" 而不是 "" 似乎有效。另外,我相信应该使用-P(密码)而不是-N(新密码,以防您更改它)。所以最终的命令行是

ssh-keygen -t rsa -C "$MyEmailAddress" -f "id_rsa_test" -P """"

【讨论】:

  • 同样的问题C:\Users\Chase> ssh-keygen -t rsa -C "me@gmail.com" -f "id_rsa_test" -P "" ssh-keygen.exe": option requires an argument -- P
  • PowerShell 似乎删除了空的双引号,并且可能需要转义它们。使用-P """" 似乎有效。
  • 将它放入 Start-Process cmdlet 对我来说效果最好: Start-Process ssh-keygen -ArgumentList '-t rsa -b 4096 -P """" -C "name@organization. com" -f "id_rsa"' -等待
  • 你可以把它定义为一个变量???来吧伙计们:$password = '""'....-P $password
猜你喜欢
  • 2020-06-02
  • 1970-01-01
  • 2023-02-14
  • 2012-06-01
  • 1970-01-01
  • 2020-11-06
  • 1970-01-01
  • 2015-05-12
相关资源
最近更新 更多