Tag: sshj

通过sshj杀死进程

我使用sshj和我试图尾随文件,但我的问题是远程进程永远不会被杀死。 在下面的示例代码中,您可以看到我尝试tail / var / log / syslog,然后我向进程发送一个kill信号。 但是,在应用程序停止并列出服务器上的所有进程后,我仍然可以看到一个活动的尾部进程。 为什么这段代码不会杀死进程? 我该怎么做才能解决这个问题呢? SSHClient ssh = new SSHClient(); ssh.addHostKeyVerifier(new PromiscuousVerifier()); try { ssh.connect(“localhost”); ssh.authPassword(“xxx”, “xxx”); final Session session = ssh.startSession(); try { final Command cmd = session.exec(“tail -f /var/log/syslog”); cmd.signal(Signal.KILL); System.out.println(“\n** exit status: ” + cmd.getExitStatus()); } catch (IOException e) { e.printStackTrace(); }finally{ session.close(); } } finally{ […]

在sshj中处理“无法validation带指纹的`ssh-rsa`主机密钥”

我有一个奇怪的问题sshj(我正在使用sshj v0.6.0),我需要一些人的帮助。 使用公钥进行身份validation在某些计算机上工作正常但在其他计算机上无法正常工作,我看到以下错误。 唯一不同的是,有问题的UNIX ID有问题,即coonradt似乎在〜/ .ssh / config下面的下面列出的配置设置仅在触发了以下错误的框上 Host * Protocol 1,2 FallBackToRsh no ForwardAgent yes ForwardX11 yes PasswordAuthentication yes RhostsAuthentication no RhostsRSAAuthentication no RSAAuthentication yes NoHostAuthenticationForLocalhost yes StrictHostKeyChecking no KeepAlive yes 从上面的配置文件中我了解到有问题的ID应该使用Protocol 1,2并且我怀疑这可能与我的失败有关(我不是很确定它,但这只是一个预感) 对于其工作正常的所有其他UNIX ID,我没有任何这样的配置文件。 PS:我无法更改UNIX ID“coonradt”的配置,因为中央哈德森服务器正在使用此ID。 如果有人可以帮助我建议这里可能有什么问题,我将不胜感激 以下是我看到的错误: Oct 24, 2011 2:30:37 AM net.schmizz.sshj.DefaultConfig initCipherFactories WARNING: Disabling high-strength ciphers: cipher strengths apparently limited […]

使用sshj java库在我的Amazon EC2盒子上执行“sudo”命令

我正在尝试使用SSHJ库( https://github.com/shikhar/sshj )在我的Amazon EC2机器上执行sudo命令。 不幸的是,我没有收到服务器的任何回复。 我确信其他非sudo命令可以完美执行。 这是一些示例代码。 Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()); sshClient.addHostKeyVerifier(new PromiscuousVerifier()); sshClient.connect(host, 22); if (privateKeyFile != null) { // authenticate using private key file. PKCS8KeyFile keyFile = new PKCS8KeyFile(); keyFile.init(privateKeyFile); sshClient.authPublickey(user, keyFile); } else { // Authenticate using password. sshClient.authPassword(user, password); } // Start a new session session = sshClient.startSession(); session.allocatePTY(“vt220”, 80,24,0,0,Collections.emptyMap()); Command cmd = […]

使用SSHj进行SSH端口转发

我正在尝试创建一个隧道来使用支持SSH的防火墙后面的服务。 我想要一个完整的java解决方案,但我似乎无法让它工作。 我发现这个github剪辑并基于此我创建了以下代码以保持后台线程给我隧道: // property on surrounding class // static final SSHClient sshclient = new SSHClient(); Thread thread = new Thread(new Runnable() { @Override public void run() { try { String host = “10.0.3.96”; sshclient.useCompression(); sshclient.addHostKeyVerifier(“30:68:2a:20:21:9f:c8:e8:ac:b4:a7:fc:2d:a7:d0:26”); sshclient.connect(host); sshclient.authPassword(“messy”, “messy”); if (!sshclient.isAuthenticated()) { throw new RuntimeException(String.format(“Unable to authenticate against ‘%s'”, host)); } Forward forward = new […]

Jsch或SSHJ或Ganymed SSH-2?

我需要连接到服务器(用户名,密码,主机) – 简单 输入3-10命令 – command =“dir; date; cd; dir”是否有更简单的方法?,不写20行:while(smtng){很多东西+神秘的打印到scr:D} 下载文件 – 简单 将另一个下载的文件写入同一个文件(添加不是owerride) – 任何想法如何? 所以要执行这些可增加的简单任务,如果您敢于使用Jsch(awsome文档),这似乎是不可能的,Jsch,sshj,Ganymed之间有选择任何建议吗? 神秘: 2)多个命令进入 4)在现有的txt文件中添加更多txt:D(可能还有内置命令)或不? /* just for download/owerride : sftpChannel.get(“downloadfile.txt”, “savefile.txt”);*/

在sshj中执行命令序列

我需要使用sshj库通过ssh在远程服务器上执行一些命令序列。 我做 Session session = ssh.startSession(); Session.Command cmd = session.exec(“ls -l”); System.out.println(IOUtils.readFully(cmd.getInputStream()).toString()); cmd.join(10, TimeUnit.SECONDS); Session.Command cmd2 = session.exec(“ls -a”); System.out.println(IOUtils.readFully(cmd2.getInputStream()).toString()); 它抛出了我 net.schmizz.sshj.common.SSHRuntimeException:此会话通道全部用完 但我不能为每个命令重新创建会话,因为这个例子它将显示主目录列表,但不显示/ some / dir列表。

SSHJ – Keypair登录EC2实例

我有一个看起来像SSHJ测试中的pem文件(虽然我没有看到它被引用): https : //github.com/shikhar/sshj/blob/master/src/test/resources/hostkey.pem 。 只需尝试通过pem文件validation到EC2实例(读为字符串),但有问题。 有人做过吗? SSHClient ssh = new SSHClient(); ssh.connect(“ec2-XXXXXXX.compute-1.amazonaws.com”); ssh.authPublickey(“ubuntu”, getPemAsString(“/Users/me/ec2.pem”)); final Session session = ssh.startSession(); session.exec(“echo -e \”test\” >> /home/ubuntu/testfile”); 错误如下: INFO [main] (TransportImpl.java:152) – Client identity string: SSH-2.0-SSHJ_0_8 INFO [main] (TransportImpl.java:161) – Server identity string: SSH-2.0-OpenSSH_5.8p1 Debian-7ubuntu1 INFO [main] (KeyExchanger.java:195) – Sending SSH_MSG_KEXINIT INFO [reader] (KeyExchanger.java:357) – Received SSH_MSG_KEXINIT […]