Я использую JSch в своем приложении для Android, и я бы хотел создать SSH-соединение, не изначально предоставляя имя пользователя и пароль. Я могу подключиться, если я укажу имя пользователя и пароль, но я получаю имя пользователя, которое не указано «ошибка от JSch, если я не предоставляю имя пользователя.Могу ли я запустить JSch sesion без имени пользователя и пароля?
Это то, что я пытался подключить, не указав имя пользователя и пароль.
private class ConnectSSH extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... a) {
try {
JSch jsch = new JSch();
Session session = jsch.getSession("192.168.1.42");
session.setPort(22);
session.connect();
Channel channelssh = (Channel)session.openChannel("exec");
StringBuilder sb = new StringBuilder();
InputStream commandOutput = channelssh.getInputStream();
channelssh.connect();
int readByte = commandOutput.read();
while(readByte != 0xffffffff){
sb.append((char)readByte);
readByte = commandOutput.read();
}
channelssh.disconnect();
return sb.toString();
} catch (Exception e) {
return "Error - " + e;
}
}
@Override
protected void onPostExecute(String result) {
Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();
}
}
будет ли мой единственный вариант будет изменить исходный код JSch, чтобы позволить этому, компилировать банку, а затем импортировать его?
AFAIK, требование имени пользователя приходит как можно больше от 'sshd', как и все остальное. Как вы настроили своего SSH-демона таким образом, чтобы он не требовал имени пользователя? – CommonsWare
В теории вы можете назначить имя пользователя по умолчанию для своего демона ssh (см. Http://stackoverflow.com/questions/10197559/ssh-configuration-override-the-default-username), поэтому вам не придется его предоставлять. Но в этом случае это конфигурация sshd. Другое дело в ситуации, когда кто-то запускает ssh-соединение и предоставляет имя пользователя после этого. В этом случае, я думаю, JSch не поддержит этот вариант. – Leo
Спасибо, Лео. Я имею в виду эмуляторы терминала, такие как Putty, которым требуется имя пользователя и пароль после подключения. Или соединение действительно не сделано до тех пор, пока не будет указано имя пользователя и пароль? – ImTroyMiller