总 linux 初学者在这里。
所以我刚刚在我的服务器上安装了https://github.com/niruix/sshwifty。我只使用 SSH 密钥登录我的服务器。我的 SSH 密钥受密码保护。
现在,当我想通过 sshwifty 连接到我的服务器时,它会要求我提供我的私钥。
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,20DD60A29753E6F89413A2F03DE8B20F
Run Code Online (Sandbox Code Playgroud)
我的私钥仍然是加密的,我假设我必须解密它并将该输出粘贴到 Sshwifty 中。
我已经尝试过的:
openssl enc -d -aes-128-cbc -in id_rsa -out dec_rsa
Run Code Online (Sandbox Code Playgroud)
这给了我一个糟糕的幻数错误。
感谢帮助
Rui*_* N. 10
命令是openssl rsa -in ~/.ssh/id_rsa
.
如果~/.ssh/id_rsa
是加密的,openssl
会要求你输入密码来解密私钥,否则直接在屏幕上输出密钥。
但话虽如此,你不应该使用id_rsa
file. 因为 Sshwifty 在后端做 SSH 的事情。这意味着你给它的私钥将通过网络发送到后台服务器,这是一种可怕的,因为私钥是打算只活在本地计算机上,应该永远是直接送到别人。
但是,我们在这里处理设计妥协:Sshwifty 后端需要私钥才能为您通过 SSH 服务器进行身份验证。因此,为了更好地保护自己,您可以生成一个 SSH 密钥对,专门用于 Sshwifty。
要生成私钥,请运行 command ssh-keygen -t rsa -f ~/.ssh/my_server
,当被要求时Enter passphrase (empty for no passphrase):
,只需点击Entersoopenssl
不会加密私钥。
命令执行成功后,你会在~/.ssh/
目录下发现两个新文件:my_server
一个是连接SSH服务器时可以在Sshwifty中使用的私钥,my_server.pub
另一个是你需要部署在你的SSH服务器上的公钥。
在这种情况下,如果由于my_server
某种原因泄漏,则只会影响一台服务器。
现在,让我们谈谈“设计妥协”。
在设计软件时,我花了一些时间寻找可以在 Web 浏览器中运行的 SSH 客户端库,但我没有找到可靠的(如果有的话)。在那之后,我花了更多时间阅读 SSH 规范,最终决定我不可能在给定的期限内安全地实现如此复杂的协议。
所以,我决定采用当前的设计,不仅因为它可以节省时间,还因为它经过了实战测试,应该能提供预期的安全性。
是的,我是 Sshwifty 的作者,由于无聊,他碰巧在谷歌上搜索了我的软件名称,并登陆了此页面。为了记录:我完全没有发布问题来宣传我的软件。
希望这个答案有帮助。对不起,我的英语不好。
小智 5
如果您希望“解密” SSH 密钥,使其不再需要密码,您可以通过运行以下命令来实现:
ssh-keygen -p -f ~/.ssh/<private key file>
Run Code Online (Sandbox Code Playgroud)
这是更改私钥密码的命令。您需要输入密码,然后输入新密码。如果您只是按 Enter 键输入新密码,则新密码将在没有密码的情况下存储。
归档时间: |
|
查看次数: |
22313 次 |
最近记录: |