Tag: openssh

在Java安全性中使用openssh公钥(ecdsa-sha2-nistp256)

是否有一个Java库/示例来读取Java中JCE PublicKey的openssh格式ecdsa PublicKey ? 我想将EC用于JWT 。 我试图读取的格式是按authorized_keys中,或Github的API(如https://api.github.com/users/davidcarboni/keys ): ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBK8hPtB72/sfYgNw1WTska2DNOJFx+QhUxuV6OLINSD2ty+6gxcM8yZrvMqWdMePGRb2cGh8L/0bGOk+64IQ/pM= 我找到了这个答案,这对RSA和DSS来说很好: 使用来自使用Java安全性的authorized_keys的公钥 ,以及对ECDSA的openssh格式的讨论: https : //security.stackexchange.com/questions/129910/ecdsa-为什么-DO-SSH-凯基和Java的生成公共密钥具备的,不同的,大小 然而,我迷失了尝试调整ECDSA的RSS / DSA代码 – 我不知道如何设置ECPublicKeySpec 。 它需要ECPoint , EllipticCurve , ECParameterSpec , ECField 。 openssh格式只包含两个整数,这对ECPoint ,但我不知道如何设置其余的。 我一直在寻找一堆库,包括jsch , sshj , ssh-tools和古老的Bouncycastle 。 我最接近的是: com.jcraft.jsch.KeyPair load = com.jcraft.jsch.KeyPair.load(jsch, null, bytes[openSshKey]); 哪个加载密钥很好,但不会让我去JCE PublicKey – 只是一个byte[] getPublicKeyBlob()方法。 我错过了一些明显的东西吗

使用Java在ssh上运行命令

Scenerio:我想通过ssh从Java程序在远程机器上运行命令(我在开发机器上使用OpenSSH)。 我还希望通过传递密码而不是像’expect’那样设置密钥来建立ssh连接。 问题:当尝试执行’expect’之类的密码登录时,使用ProcessBuilder创建的进程似乎无法看到密码提示。 当运行常规的非ssh命令(例如’ls’)时,我可以获得流并与它们进行交互。 我正在使用redirectErrorStream(true);将标准错误和标准输出合并到一个流中redirectErrorStream(true); 所以我没有错过标准错误…当我使用’-v’选项运行ssh时,我看到流中的所有日志记录但我没有看到提示。 这是我第一次尝试使用ProcessBuilder这样的东西。 我知道使用Python,Perl或者好的OL会更容易,但我的老板想要在现有的Java程序中利用我们想要的东西(远程日志文件和运行脚本),所以我有点卡住了。 先谢谢您的帮助!

如何从Java生成ssh兼容的id_rsa(.pub)

我正在寻找一种以Java编程方式创建ssh兼容的id_rsa和id_rsa.pub文件的方法。 我创建了KeyPair: KeyPairGenerator generator; generator = KeyPairGenerator.getInstance(“RSA”); // or: generator = KeyPairGenerator.getInstance(“DSA”); generator.initialize(2048); keyPair = generator.genKeyPair(); 我无法弄清楚如何在KeyPair中创建PrivateKey和PublicKey的String表示。

使用来自authorized_keys的公钥和Java安全性

如何使用系统authorized_keys文件中的条目来实现java.security.PublicKey ? 我特别想要将authorized_keys文件中的公钥与Apache SSHD PublickeyAuthenticator接口中提供的公钥进行比较。