项目中需要用到sftp上传文件到服务器。使用了j2ssh包。
在开发过程中没有出现任何问题,连接步骤:
SshClient ssh = null;
ConfigurationLoader.initialize(false);
// Make a client connection
ssh = new SshClient();
// Connect to the host
ssh.connect(host,port);
KBIAuthenticationClient kbi = new KBIAuthenticationClient();
kbi.setUsername(username);
kbi.setKBIRequestHandler(new KBIRequestHandler(){
public void showPrompts(String arg0, String arg1,KBIPrompt[] prompts)
{
if(prompts != null)
{
prompts[0].setResponse(password);
}
}
});
// Try the authentication
int iresult = ssh.authenticate(kbi);
// Evaluate the result
if (iresult == AuthenticationProtocolState.COMPLETE) {
// The connection is authenticated we can now do some real work!
sftp = ssh.openSftpClient();
attrs = sftp.stat(dir);
}
else
{
ssh = null;
}
if(sftp != null && !sftp.isClosed())
{
try {
sftp.quit();
} catch (IOException e) {
Tracer.error("sFTP connect quit failed.Exception:" + e.toString());
}
}
if(ssh != null && ssh.isConnected())
{
ssh.disconnect();
}
后来在测试机器上运行发现,每次连接都会向服务器询问:Do you want to allow this host key? [Yes|No|Always]:
经过查看代码发现,在连接时,加入HostKeyVerification,可使连接默认选择,不再需要询问用户。
ssh.connect(host,port,new HostKeyVerification(){
/**
* 不用验证Host key,直接连接
*/
public boolean verifyHost(String arg0, SshPublicKey arg1) throws TransportProtocolException {
return true;
}
});
分享到:
相关推荐
在Delphi中,我们可以利用第三方库或组件来实现SFTP连接,例如LibSSH2、WinSSHD、Chilkat等。 1. **使用LibSSH2库**: LibSSH2是一个开源的C语言库,支持多种SSH协议,包括SFTP。要在Delphi中使用,需要将库封装为...
FileZilla 是一个流行的SFTP连接工具,它提供了图形化的用户界面,使得用户可以方便地进行文件的上传、下载以及管理。FileZilla 支持多种协议,包括FTP、FTPS(FTP over TLS/SSL)以及我们关注的SFTP。这款软件是...
通过 sftp 连接 ,端口为默认的 22,用户为 Linux 当前登录用户。 格式:sftp -oPort=<port> 通过 sftp 连接 ,指定端口 ,用户为 Linux 当前登录用户。 格式:sftp <user>@ 通过 sftp 连接 ,端口为默认的 22...
支持多种方式的连接器,注意,只能连接Linux,特别是对开Minecraft服务器的版主们最有用处!——By:LINhim
本文档详细介绍了通过iptables限制sftp端口连接数的运维操作方法,以及预防CC/DDOS攻击的设置措施.在此分享,希望能帮助到有用到的朋友!
C# 后台自动连接SFTP 下载上传文件
远程连接工具,支持SFTP,FTP 需要自带jdk环境 该平台类似于网页版的Xshell,基于cookie和json的方式存储登录信息无数据库更方便兼容每个用户的使用,支持SFTP和FTP两种登录方式,打破原有黑端显示命令行和文件名的...
**Winscp SFTP客户端FTP连接工具** Winscp是一款广受欢迎的免费开源文件传输协议(FTP)客户端,尤其在IT行业中,它以其支持安全文件传输协议(SFTP)而备受推崇。这款工具允许用户通过SSH(Secure Shell)协议安全...
首先,我们需要一个Java库来处理SFTP连接。常用的是JSch(Java Secure Channel),这是一个开源的SSH2库,支持SFTP。要使用JSch,你需要将其添加到你的项目依赖中。如果你使用Maven,可以在pom.xml文件中添加如下...
使用Delphi连接SFTP,代码完整,dll和pas、dcu文件齐全;功能完整,包含有密码登录和无密码Public Key和Private Key登录,已在Delphi7下运行通过,参考意义大。
连接SFTP服务器可以通过命令行或者图形界面完成。在命令行中,你可以输入: ```shell sftp username@server_address ``` 然后输入密码或使用密钥对进行身份验证。在图形界面客户端中,只需输入相关信息,点击连接...
可以作为shell工具,通水可以连接SFTP作为SFTP管理工具,还可以自定义输入命令自动输入
通过这样的测试,开发者可以快速诊断问题,确保SFTP连接的可行性。 在实际使用中,SFTP第三方插件可以扩展和增强原生SFTP客户端的功能。例如,有些插件可能提供了更友好的用户界面,方便用户浏览和操作远程文件系统...
例如,在本文档中,使用 SFTP 客户端连接到 10.0.85.137:22 端口,Nginx 将连接请求转发到 10.0.85.133:22 端口的 SFTP 服务器。 4. TCP 协议通讯: Nginx 除了支持 SFTP 代理外,还支持 TCP 协议通讯。TCP 协议是...
在这里提到的`putty-64bit-0.70-installer.msi`是64位版本的PuTTY安装程序,虽然PuTTY本身不是Java SFTP上传的直接依赖,但它通常用于测试SSH连接,生成密钥对(公钥和私钥),以及调试连接问题。PuTTY生成的密钥...
在使用SharpSSH时,开发者可以创建SFTP连接,执行基本的文件操作,如上传、下载、列出目录、移动和删除文件等。例如,通过以下C#代码片段可以创建一个SFTP连接: ```csharp using Tamir.SharpSsh; Sftp sftp = new...
这两个库都提供了方便的API来实现SFTP连接。以SSH.NET为例,我们首先需要安装NuGet包Renci.SshNet,然后创建一个SftpClient实例,输入服务器地址、用户名和密码: ```csharp using Renci.SshNet; var ssh = new ...
6. **错误处理**:网络通信中难免会遇到连接断开、数据传输错误等问题,因此良好的错误处理机制是必不可少的。 7. **安全性**:SFTP强调的是安全传输,因此代码中应包含安全的密钥管理、证书验证等安全措施。 8. *...
总的来说,JSch库为Java开发者提供了一种强大且灵活的方式来实现SFTP连接和文件操作。无论是进行简单的文件传输还是构建复杂的文件管理系统,JSch都能满足需求。通过熟悉其API和最佳实践,开发者可以有效地集成SFTP...
该问题是由于SFTP协议的编码问题所致,可以通过设置编码方式来解决该问题。例如,可以使用UTF-8编码来解决乱码问题。 SFTP协议是一种安全的文件传输协议,提供了可靠的文件传输机制。通过JSch库,可以在Java应用...