Я пишу приложение, которое должно получить доступ к моему частному серверу через SSH, используя JSch. Так как я установил аутентификацию с открытым ключом, я хочу, чтобы это приложение аутентифицировалось таким же образом. Я буду единственным, кто использует это приложение, поэтому я хочу хранить свой ключ либо непосредственно внутри приложения (например, жестко запрограммировано), либо отдельно где-то в домашнем каталоге моего телефона. Какой будет лучший способ сохранить его, возможно, в виде файла ресурсов внутри проекта? Так как я довольно новичок в разработке для 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());
Последнее привело к ошибке «неверный приватный ключ» . Кроме того, я не уверен, какой из этих двух способов является более безопасным для работы.
Заранее спасибо.