【问题标题】:Public/Private keys generated by SshKeyGenerator don't workSshKeyGenerator 生成的公钥/私钥不起作用
【发布时间】:2021-07-19 01:29:46
【问题描述】:

我使用这个简单的代码

        int keySize = 2048;
        string publicKey, privateKey;

        var keygen = new SshKeyGenerator.SshKeyGenerator(keySize);

        publicKey = keygen.ToRfcPublicKey();
        privateKey = keygen.ToPrivateKey();

        using (StreamWriter sw = new StreamWriter(@"C:\Users\Admin\.ssh\id_rsa", false, Encoding.UTF8))
        {
            sw.WriteLine(privateKey);
        }

        using (StreamWriter sw = new StreamWriter(@"C:\Users\Admin\.ssh\authorized_keys", false, Encoding.UTF8))
        {
            sw.WriteLine(publicKey);
        }

然后尝试在Win10上使用OpenSSH连接SSH服务器

ssh admin@localhost -i "C:\Users\Admin\.ssh\id_rsa"

它不起作用。

但是,控制台中简单的“ssh-keygen”生成的密钥可以正常工作,我在这里做错了什么?

【问题讨论】:

  • 在 VS 中您没有管理员权限,除非您右键单击 VS 快捷方式并选择以管理员身份运行。

标签: c# ssh ssh-keys openssh


【解决方案1】:

您可以使用get the USEPROFILE environment value,而不是尝试从 VSCode 访问 C:\Users\Admin,并将其用作 .ssh 的基本文件夹。

System.Environment.GetEnvironmentVariable("USERPROFILE"); 

这样,只要您将密钥移动到 %USERPROFILE%\.ssh 中,VSCode 将以您(而不是管理员)身份启动。
如果可能的话,最好不要以管理员身份工作(就像在 Linux 上最好不要以 root 身份工作)。

【讨论】:

    猜你喜欢
    • 2011-07-11
    • 2022-01-13
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 2019-08-15
    相关资源
    最近更新 更多