我无法将一台unix服务器的安全服务器连接到另一台unix服务器。从putty到ssh,我能够轻松连接,但当从jsch连接时,我发现错误如下。
成功的腻子步骤-
jsch步骤--
连接会话
错误:-将不分配伪终端,因为stdin不是终端。权限被拒绝,请重试。权限被拒绝,请重试。权限被拒绝(公钥、密码、键盘交互)。ksh:changeme:未找到退出状态:127
jsch示例程序-
JAVAutil。Properties config=newjava。util。属性();
config.put("StrictHostKeyChecking", "no");
JSch jsch = new JSch();
jsch.setKnownHosts("C://known_hosts.txt");
session=jsch.getSession(user1, server1, 22);
session.setPassword(password1);
session.setConfig(config);
session.connect();
System.out.println("Connected session1");
String command ="ssh"+" "+"user@ip;"+"password" ;
channel=session.openChannel("exec");
((ChannelExec)channel).setCommand(command);
channel.setInputStream(null);
InputStream in=channel.getInputStream();
((ChannelExec)channel).setErrStream(System.err);
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("server 1"+new String(tmp, 0, i));
}
if(channel.isClosed()){
System.out.println("exit-status: "+channel.getExitStatus());
break;
}
try{Thread.sleep(1000);}catch(Exception ee){}
channel.disconnect();
session.disconnect();
您可以简单地使用通道,而不是进行端口转发。连接前设置(真)。之后,您可以使用outPutStream提供密码。
我在回答中加入重要部分:-
JSch jsch = new JSch();
jsch.setKnownHosts("C:/My Program Files/eclipse/workspace/StatusTracker/known_hosts.txt");
// jsch.setKnownHosts(knownHostLoc);
//Jump server connection session started
jumpServerSession = jsch.getSession(userid, jump server ip/hostname, 22);
jumpServerSession.setPassword(jump server password);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
jumpServerSession.setConfig(config);
jumpServerSession.connect();
System.out.println("The session has been established to "+jump server userid+"@"+jump server name);
int assinged_port = jumpServerSession.setPortForwardingL(0, other server ip, 22);
System.out.println("portforwarding: "+
"localhost:"+assinged_port+" -> "+other server ip+":"+22);
//Main server connection session started
targetServerSession = jsch.getSession(fileBO.getServerUserId(), "127.0.0.1", assinged_port);
targetServerSession.setHostKeyAlias(other server ip);
targetServerSession.setPassword(other server password);
java.util.Properties config1 = new java.util.Properties();
config1.put("StrictHostKeyChecking", "no");
targetServerSession.setConfig(config1);
targetServerSession.connect();
channel = targetServerSession.openChannel("sftp");
channel = targetServerSession.openChannel("exec");
//command want to execute on dest server
((ChannelExec)channel).setCommand("pwd");
channel.setInputStream(null);
InputStream in11=channel.getInputStream();
((ChannelExec)channel).setErrStream(System.err);
channel.connect();
byte[] tmp1=new byte[1024];
while(true){
while(in11.available()>0){
int i1=in11.read(tmp1, 0, 1024);
if(i1<0)break;
System.out.print(new String(tmp1, 0, i1));
}
if(channel.isClosed()){
System.out.println("exit-status: "+channel.getExitStatus());
break;
}
try{Thread.sleep(1000);}catch(Exception ee){}
}
} catch (final JSchException e) {
LOGGER.error(e.getMessage());
}
问题内容: 我需要将Jenkins 2.32版从服务器A移至Jenkins 2.72.1服务器B。两台服务器均具有ubuntu 16.04.3,由于内存问题,我无法安装任何插件,也无法在服务器A中使用该插件。有什么办法可以实现这一目标? 问题答案: 将目录中的所有文件复制到新服务器。 将新服务器指向新目录。 将Jenkins war文件(或servlet容器设置,如果有的话)复制到新机器上并启动它
我有一个关于ClientBootstrap的问题。下面是场景; null 正如您在错误行中看到的,我得到了这个异常:java.nio.channels.ClosedChannelException。我们不能在断开后使用相同的频道吗?。一旦断开,就完成了吗?。我们如何在SimpleChannelHandler中重新创建连接? 感谢进一步的评论:) <<<<<<新方法>>>>> 在SimpleChan
这是mysql连接php脚本。它不断地显示出它的错误 警告:mysqli_connect():(HY000/1045):用户'user'@'localhost'(使用密码:YES)在第6行的C:\xampp\htdocs\index.php访问被拒绝 注意:尝试在第7行连接成功的C:\xampp\htdocs\index.php中获取非对象的属性 我听不懂,请帮帮我好吗?
首先,我知道有很多类似的问题,但我所看到的似乎都不能解决我的设置(我发现的任何解决方案都不管用)。所以请容忍我。。。 我的服务器主机名是IP地址,而不是域名(即URL看起来像:) 我的服务器有一个真正的证书(即,没有自签名) 我的应用程序的plist条目字典为空(没有任何例外-出厂设置ATS) 这是生产代码,我不能禁用ATS(我也不认为我可以,因为例外只适用于显式域名,而不是IP地址) (iOS9
null ...9200/_cluster/nodes ...9200/_cluster/health?pretty=true Java代码: Java版本: 问题已按以下方式解决。确保您的客户端和服务器版本是同步的!
我正在尝试连接两个docker容器,一个是posgresql,另一个是python flask应用程序。两者都链接正确,python应用程序中的所有连接变量都直接取自postgres容器中通过链接公开的连接变量,并且与检查postgresql容器时发现的连接变量相同。当我将psql与连接字符串中的精确参数一起使用时,即: 成功连接到postgres容器中的数据库,因此我知道postgres正在通过