RE: Java and SSH 01-28-2019, 06:33 AM
#5
(12-20-2018, 10:29 PM)Mr.Kurd Wrote:In The Name OF AllahAl-Salam Alekum
Hello guys, Long time because of my exams I hadn't time to come online. Today I'm going to explain using JSch library in Java to connect with SSH server, executing commands and downloading files. I hope ye all like it...
Start your IDE I'm using NetBeans. Add JSch library Download it from here
In this example we will connect to our server(VPS) through SSH and run a command (cd /var/www && ls).
PHP Code:/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package ssh;
import java.io.InputStream;
import java.util.Properties;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
public class SSHConnectionJava {
public static void main(String[] args) {
//Host IP
String host = "1.1.1.1";
//Host User
String user = "root";
//Host Password
String password = "12345678";
try {
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
JSch jsch = new JSch();
// Create a JSch session to connect to the server
Session session = jsch.getSession(user, host, 22);
session.setPassword(password);
session.setConfig(config);
// Establish the connection
session.connect();
System.out.println("Connected...");
ChannelExec channel = (ChannelExec) session.openChannel("exec");
//Executing a command
channel.setCommand("cd /var/www/ && ls");
channel.setErrStream(System.err);
InputStream in = channel.getInputStream();
channel.connect();
byte[] tmp = new byte[1024];
while (true) {
while (in.available() > 0) {
int i = in.read(tmp, 0, 1024);
if (i < 0) {
break;
}
System.out.print(new String(tmp, 0, i));
}
if (channel.isClosed()) {
System.out.println("Exit Status: "
+ channel.getExitStatus());
break;
}
Thread.sleep(1000);
}
channel.disconnect();
session.disconnect();
System.out.println("DONE!!!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
As you see in this image, it shows us html as a commands result.
Now all depend on you for Backing up both your website files and SQL database using two commands instead of the one above:
Code:zip -r /home/sinisterly.zip /var/www/ && mysqldump --all-databases > /home/all_databases.sql
This above will generate a zip files which include our files and the second command will generate a SQL file which include the whole databases data. Note: && separate the two commands.
Okay Let's download this files above:
PHP Code:/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package ssh;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
/**
*
* @author Kurdy
*
*/
public class DownloadFileSFTP {
public static void main(String[] args) throws Exception {
JSch jsch = new JSch();
Session session = null;
try {
//Server User, IP and Port
session = jsch.getSession("root", "1.1.1.1", 22);
session.setConfig("StrictHostKeyChecking", "no");
//Server Password here...
session.setPassword("12345678");
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
//creating a FTP channel between you and the server
ChannelSftp sftpChannel = (ChannelSftp) channel;
//Downlaoding sinisterly.zip file to partiton D
sftpChannel.get("/home/sinisterly.zip", "D:\\redsecurity.zip");
//Downloading all_databses.sql file to partition D
sftpChannel.get("/home/all_databases.sql", "D:\\all_databases.sql");
System.out.println("Downloading Finished");
sftpChannel.exit();
session.disconnect();
} catch (JSchException e) {
e.printStackTrace();
} catch (SftpException e) {
e.printStackTrace();
}
}
}
I'm done if you need anything feel free PMing me or posting here down...
Thank you for reading ......
Wa Salam Alekum
very nice guide. I enjoy reading.
![Smile Smile](https://sinister.ly/images/smilies/set/smile.png)
![Cool Cool](https://sinister.ly/images/smilies/set/cool.png)
My IT skills that I know perfect is SQL, HTML ,css ,wordpress, PHP.
coding skills that I know is Java, JavaScript and C#
coding skills that I know is Java, JavaScript and C#