AndroidアプリでのJava JSCH内の文字列またはリソースから秘密鍵をロード

Tabsu:

私はJSCHを使用してSSH経由で私のプライベートサーバーにアクセスすることになっているアプリを書いています。私は、公開鍵認証を設定しているので、私はこのアプリが同じように認証します。私はアプリ内で直接私の携帯電話のホームディレクトリ内の(例えばハードコーディング)または分離どこかに私のキーを格納したいので、私はこのアプリを使って一つだけになります。これは多分、プロジェクト内のリソースファイルとして、それを格納するための最良の方法だろうか?私はAndroidの開発にはかなり新しいですので、私はこのための最善の方法だかについてはよく分かりません。

私は試してみました:

// [...]
String user = "my_user";
String ssh_pwd = "my_pwd";
String host = "my_host";
// stored as OpenSSH key - file not found error - where shoud I move this file?
String private_key = "./my_pk";

int port = 22;

// basic SSH connection stuff
JSch jsch = new JSch();
session = jsch.getSession(user, host, port);
jsch.addIdentity(private_key, ssh_pwd.getBytes());

別の方法:

// [...]
// private key in OpenSSH format as a plain string
String private_key = "xyz123abc456def789ghi012..."; 
// public key in OpenSSH format as a plain string
String public_key = "a1b2c3d4e5..."; 
// [...]
jsch.addIdentity("id_rsa", private_key.getBytes(), public_key.getBytes(), ssh_pwd.getBytes());

後者は、以下のような結果に「無効のPrivateKey」エラー。それに加えて、私はと仕事に、より安全な方法です両方のかわからないんだけど。

前もって感謝します。

マーティンPrikryl:
String private_key = "xyz123abc456def789ghi012..."; // private key in OpenSSH format as a plain string
String public_key = "a1b2c3d4e5..."; // public key in OpenSSH format as a plain string

JSch.addIdentity(最終的にKeyPair.load)によって生成された鍵ペアファイルの内容を含むバッファとるssh-keygen(で-m pemのOpenSSHの最近のバージョンでは)。

フォーマットはこのようなものです:

-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAvc04a8wViYV5Kb4jX+MxEqN1vi9q9C7mPhf6DV+mb1ADNAiR
YeLqPMLCYUF2ViobcGfarb51gz7iB2TgkDmhQNK9XDCOUaGYN/FeZcN0JpzkjEjZ
ApbRfshj1h9qKQUW+38XKnltMtf4dxiuxkXph8P6IMVveTDs3sSbBPq560bdJ1AD
...
PEyVxlat2I4ShuLQiO1QIuS8ABu5yDM2EouB6vlxtGEBpIJItp7cyA==
-----END RSA PRIVATE KEY-----
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9zThrzBWJhXkpviNf4zESo3W+L2r0LuY+F/oNX6ZvUAM0CJFh4uo8wsJhQXZWKhtwZ9qtvnWDPuIHZOCQOaFA0r1cMI5RoZg38V5lw3QmnOSMSNkCltF+yGPWH2opBRb7fxcqeW0y1/h3GK7GRemHw/ogxW95MOzexJsE+rnrRt0nUAOu4hHjL6G/nlvdJ1jjZ06NwhYkbAxRoJkHUJTtMT2IL5ZmdAf37KHSPqZS32pLxQDmPutZxpIwlhz4aR78ZGp4+57mR069Y4at09GF0UmgtIiLjlKUexMf5sueVQ8LKhME6vOupMzTbiFEB3UJNq8d9Yx5i+c/IRHUIcI1 marti@MartinuvOmen

これはあなたが持っている形式ではありませんprivate_keypublic_key


参照してください。文字列から秘密鍵を追加するJSCHを

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=226539&siteId=1