我们必须通过配置用户名、密码和公钥,使用代理服务器internet.ford.com从应用程序连接到外部SFTP服务器。
4463 [8/19/19 12:05:06:301 EDT] 0001fadf TransCommunic I JSchException @ TransCommunicationMgr:- connect Result Code: UnknownHostKey: 74.126.93.138. RSA key fingerprint is e8:90:a9:f3:3d:8f:83:26:e3:24:2b:2f:a1:71:e3:7c
// knownHostPublicKey is a String variable
knownHostPublicKey=config.getKnownHostPublicKey();
jsch.setKnownHosts(new
ByteArrayInputStream(knownHostPublicKey.getBytes()));
public Session connectSFTP(final FtpCredentials config)
throws OfBusinessRuntimeException{
final String METHOD_NAME = "connect";
log.entering(CLASS_NAME, METHOD_NAME, config);
/*Local attributes declaration */
String host = null;
String user = null;
String password = null;
int elapsedTime = 0;
int sftpPort = 0;
String knownHostPublicKey = null;
String sftpProxy = null;
int sftpProxyPort=0;
Session sftpSession = null;
JSch jsch = new JSch();
/* Beginning of try catch block */
try {
// Getting FTP connection details.
if (config != null) {
host = config.getHost();
user = config.getUserId();
sftpPort = config.getSftpPort();
password = config.getPassword();
elapsedTime = config.getElapsedTime();
knownHostPublicKey=config.getKnownHostPublicKey();
/*byte[] hostPublicKey=Base64.getDecoder().decode(knownHostPublicKey);
HostKey hostKey=new HostKey(host,hostPublicKey);
jsch.getHostKeyRepository().add(hostKey,null);
*/
jsch.
jsch.setKnownHosts(new ByteArrayInputStream(knownHostPublicKey.getBytes()));
sftpProxy=config.getSftpProxy();
sftpProxyPort=config.getSftpProxyPort();
sftpSession = jsch.getSession(user, host, sftpPort);
}
log.info("Before Connect " + host + " User :- " + user);
if (host == null || user == null || password == null) {
throw new OfBusinessRuntimeException(
"SFTP Host Information not found.");
}
sftpSession.setHost(host);
sftpSession.setPassword(password);
sftpSession.setPort(sftpPort);
//java.util.Properties config = new java.util.Properties();
// // force aes256-ctr encryption
//config.put("cipher.s2c", "aes256-ctr");
//config.put("cipher.c2s", "aes256-ctr");
//config.put("CheckCiphers", "aes256-ctr");
//session.setConfig(config);
sftpSession.setProxy(new ProxyHTTP(sftpProxy,sftpProxyPort));
/*
* Setting the timeout to 30 seconds to ensure connection is made
* for testing setting the port to 22 as this should be the one
* to accept the connection
**/
sftpSession.setTimeout(elapsedTime);
sftpSession.connect();
log.info("SFTP Session Connection is successful");
} catch (final JSchException jschException) {
jschException.printStackTrace();
log.info("JSchException @ TransCommunicationMgr:- "
+ METHOD_NAME + " Result Code: "
+ jschException.getMessage());
//throw new OfBusinessRuntimeException(jschException.getMessage(),jschException);
}
/* Log existing method. */
log.exiting(CLASS_NAME, METHOD_NAME, sftpSession);
return sftpSession;
}
预期与外部SFTP服务器的连接成功。
jsch.setknownhosts
接受OpenSSHauthorized_keys
文件格式的公钥,如下所示:
example.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0hVqZOvZ7yWgie9OHdTORJVI5fJJoH1yEGamAd5G3werH0z7e9ybtq1mGUeRkJtea7bzru0ISR0EZ9HIONoGYrDmI7S+BiwpDBUKjva4mAsvzzvsy6Ogy/apkxm6Kbcml8u4wjxaOw3NKzKqeBvR3pc+nQVA+SJUZq8D2XBRd4EDUFXeLzwqwen9G7gSLGB1hJkSuRtGRfOHbLUuCKNR8RV82i3JvlSnAwb3MwN0m3WGdlJA8J+5YAg4e6JgSKrsCObZK7W1R6iuyuH1zA+dtAHyDyYVHB4FnYZPL0hgz2PSb9c+iDEiFcT/lT4/dQ+kRW6DYn66lS8peS8zCJ9CSQ==
那不是你使用的格式。
我的mongoDB托管在X盒上,Angular Spring应用程序托管在Y盒上。当两者都在本地时,我的应用程序运行良好,但在这个服务器级配置中,我遇到了以下问题。 HTTP状态500-请求处理失败;嵌套异常是org.springframework.dao.DataAccessResourceFailure异常:无法连接到任何服务器;嵌套异常是com.mongodb.MongoServerSsel
问题内容: 我正在使用jsch从服务器下载文件,下面是我的代码。 com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2629) at com.jcraft.jsch.ChannelSftp._get(ChannelSftp.java:977) at com.jcraft.jsch.ChannelSftp.get(Channe
干杯, 阿什利
我遇到了一种奇怪的情况,第一次需要连接到SFTP服务器,但似乎找不到访问该服务器已知主机条目的方法。如果我说: 但显然这让你容易受到中间人的攻击。因此,我尝试连接: 我会收到各种各样的错误信息。最近的一次是: 我运气不好吗?我是不是应该绕过钥匙检查?
问题内容: 我无法让我的Android应用程序连接到socket.io聊天服务器。我正在使用由Gottox创建的socket.io-java- client,可以在这里找到:https : //github.com/Gottox/socket.io-java- client 服务器在端口7000上本地运行。我使用的是Android模拟器,因此我使用的是10.0.2.2:7000来访问服务器。 任何
问题内容: 我处于一种奇怪的情况下,我需要第一次连接到SFTP服务器,但似乎找不到找到访问该服务器的已知主机条目的方法。如果我可以连接很好说: 但显然,这会让您在中间攻击时对男人敞开怀抱。所以我尝试连接: 而且我得到各种错误消息。最近的是: paramiko.hostkeys.InvalidHostKey 问题是我没有主机密钥,因为我是第一次连接。我试图从其他连接中获取密钥。我使用WinSCP,但