Я понимаю, что дубликат >>> скопирован из дубликата >>> Пока на вашем локальном компьютере работает сервер SSH < < < < <, но я не могу комментировать и не может, как от вопроса (и им не предоставляют ответ ....)com.jcraft.jsch.JSchException: java.net.ConnectException: Connection отказано: connect
Он заявил, что «пока ваша локальная машина имеет сервер SSH работает», но я не знаю, как запустить SSH-сервер. Я включаю мою шпатлевку (дважды щелкните по ней) (не уверен, что это означает, что SSH (? Putty?) Сервер (?) Запущен ... сомнение ...
im действительно новое для программирования сокетов. I я использую JSch (http://www.jcraft.com/jsch/), чтобы попытаться подключиться к удаленному серверу (более поздний этап) . В настоящее время это код, который я использую, и я пытаюсь подключиться к локальному компьютеру и выполнить команду (ls to exact), чтобы сделать тест, но я продолжаю сталкиваться с отказом в подключении, и я заметил, что есть некоторые статьи, в которых упоминается о «прослушивании сервера», но я понятия не имею, что это означает. Пожалуйста, просмотрите мой код, как показано ниже.
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Properties;
import com.jcraft.jsch.*;
class SwingWorkerExample {
JTextField hostField;
JTextField userNameField;
JTextField passwordField;
JPanel panel;
public SwingWorkerExample() {
JPanel p = panel = new JPanel(new GridLayout(0,2));
hostField = new JTextField(20);
userNameField = new JTextField(20);
passwordField = new JPasswordField(20);
JButton testButton = new JButton("connect!");
testButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ev) {
testConnectionButtonActionPerformed(ev);
}
});
p.add(new JLabel("host:"));
//127.0.0.1
p.add(hostField);
p.add(new JLabel("user:"));
//mycomputerusername
p.add(userNameField);
p.add(new JLabel("password:"));
//mycomputerpassword
p.add(passwordField);
p.add(testButton);
}
public JPanel getPanel() {
return panel;
}
private void testConnectionButtonActionPerformed(ActionEvent evt) {
SwingWorker sw = new SwingWorker(){
protected Object doInBackground() throws Exception {
try {
JSch jsch = new JSch();
String host = hostField.getText();
String username = userNameField.getText();
String password = passwordField.getText();
Session session = jsch.getSession(username, host);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.setTimeout(20000);
System.out.println("Connecting to server...");
session.connect();
return session;
}
catch(Exception ex) {
ex.printStackTrace();
throw ex;
}
}
public void done(){
try {
System.out.println(get());
} catch (Exception ex) {
ex.printStackTrace();
}
}
};
sw.execute();
}
public static void main(String[] egal) {
EventQueue.invokeLater(new Runnable(){public void run() {
SwingWorkerExample ex = new SwingWorkerExample();
JFrame f = new JFrame("bla");
f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
f.setContentPane(ex.getPanel());
f.pack();
f.setVisible(true);
}});
}
public void remoteLs() throws JSchException, IOException {
JSch js = new JSch();
Session s = js.getSession("kellyseo", "192.168.0.103", 22);
s.setPassword("S9031808z");
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
s.setConfig(config);
s.connect();
Channel c = s.openChannel("exec");
ChannelExec ce = (ChannelExec) c;
ce.setCommand("ls -l");
ce.setErrStream(System.err);
ce.connect();
BufferedReader reader = new BufferedReader(new InputStreamReader(ce.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
ce.disconnect();
s.disconnect();
System.out.println("Exit code: " + ce.getExitStatus());
}
public void remoteMkdir() throws JSchException, IOException {
JSch js = new JSch();
Session s = js.getSession("myusername", "myremotemachine.mycompany.com", 22);
s.setPassword("mypassword");
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
s.setConfig(config);
s.connect();
Channel c = s.openChannel("exec");
ChannelExec ce = (ChannelExec) c;
ce.setCommand("mkdir remotetestdir");
ce.setErrStream(System.err);
ce.connect();
BufferedReader reader = new BufferedReader(new InputStreamReader(ce.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
ce.disconnect();
s.disconnect();
System.out.println("Exit code: " + ce.getExitStatus());
}
public void remoteCopy() throws JSchException, IOException, SftpException {
JSch js = new JSch();
Session s = js.getSession("myusername", "myremotemachine.mycompany.com", 22);
s.setPassword("mypassword");
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
s.setConfig(config);
s.connect();
Channel c = s.openChannel("sftp");
ChannelSftp ce = (ChannelSftp) c;
ce.connect();
ce.put("/home/myuser/test.txt","test.txt");
ce.disconnect();
s.disconnect();
}
}
BTW i использует commandprompt для ping 127.0.0.1 в порядке, но если я использую telnet 127.0.0.1, он говорит: Не удалось открыть соединение с хостом (я включил putty (? двойной щелчок?), на порт 23: соединение не удалось. и, SSH = PUTTY ... правый? (Я не могу использовать команду 'SSH' в командной строке)
Ссылки: 1) http://sourceforge.net/p/jsch/mailman/message/31745775/
и 2) http://javarevisited.blogspot.sg/2013/02/java-net-ConnectException-Connection-refused.html
и 3) http://www.jcraft.com/jsch/examples/ и 4) Run a command over SSH with JSch и 5) Can we use JSch for SSH key-based communication?
и ... спасибо заранее!
oh, а theres также http://www.ganymed.ethz.ch/ssh2/ (альтернатива JSch .. любой совет приветствуется!), Но когда я пытаюсь запустить пример, он не говорит о главном. который .. i duno>. < Будут палки w JSch до этого ....
BTW, я пробовал https://serverfault.com/questions/185153/free-public-ssh-server-for-testing-purposes для сервера, но ... я понятия не имею, какой адрес, имя пользователя и пароль. (Я также http://sdf.org счетов вновь созданных но когда я пытаюсь подключиться к нему, он говорит unknownhost. FYI!)
забыл упомянуть, им с помощью окна 7 и «ни» это не команда в моей команде prompt ...
Вам необходимо установить SSH-сервер. Шпатлевка действует только как ваш клиент SSH. –