我使用Paramiko将文件放入SFTP服务器:
import paramiko
transport = paramiko.Transport((host, port))
transport.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put(local_path, remote_path)
Run Code Online (Sandbox Code Playgroud)
现在,我想检查一下是否有效.我的想法是我比较本地文件和远程文件(位于SFTP服务器上)的校验和.
Paramiko功能是否允许这样做?如果是这样的话,究竟是如何运作的?
我正在使用Vagrant在Windows主机上创建VM,我想将其与PuTTY连接.Vagrant以.pem格式创建RSA私钥.PuTTY需要.ppk格式的密钥才能创建连接.
我想在创建vagrant VM时自动将.pem转换为.ppk.
关于如何将.pem转换为.ppk的问题已被多次询问和回答,但在Windows上,所有这些答案都涉及点击puttygen GUI.似乎在Linux上,puttygen可以完全从命令行操作,但在Windows上必须使用GUI.
在创建我想避免的新VM时,必须单击GUI是我工作流程中的一个慢点.
在Windows上是否有任何命令行/脚本/编程方式将.pem文件转换为.ppk格式?
我试图弄清楚如何为基于Java的SFTP服务器实现服务器端侦听器,以提醒我有传入的文件传输。我正在使用最新版本的Apache Mina。我的情况是服务器只从客户端接收文件,然后在存储文件之前对文件进行“处理”。那可能是错误检查/规则验证/将内容转发到其他地方。我要做的是先将其保存在系统中。我在使用文档时遇到困难,找不到一个工作示例,该示例显示了通过访问传入文件流而实现的侦听器。我从指南中获得了一个非常简单的服务器:
public void setupServer() throws IOException {
sshd = SshServer.setUpDefaultServer();
sshd.setFileSystemFactory(new NativeFileSystemFactory() {
@Override
public FileSystemView createFileSystemView(final Session session) {
return new NativeFileSystemView(session.getUsername(), false) {
@Override
public String getVirtualUserDir() {
return testFolder.getRoot().getAbsolutePath();
}
};
};
});
sshd.setPort(8001);
sshd.setSubsystemFactories(Arrays
.<NamedFactory<Command>> asList(new SftpSubsystem.Factory()));
sshd.setCommandFactory(new ScpCommandFactory());
sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider(testFolder
.newFile("hostkey.ser").getAbsolutePath()));
sshd.setPasswordAuthenticator(new PasswordAuthenticator() {
public boolean authenticate(final String username, final String password,
final ServerSession session) {
return StringUtils.equals(username, USERNAME)
&& StringUtils.equals(password, PASSWORD);
}
});
// SessionListener event = new SessionListener();
sshd.start();
}
Run Code Online (Sandbox Code Playgroud)
该服务器能够接收文件并将其存储在虚拟文件系统上。我只能在收到并存储文件后才能读取文件/验证内容。目前基本身份验证还不错,感谢您对身份验证机制的详细记录!
所以我的问题是: …
我可以使用PSCP传输文件:
C:\>pscp -pw <password> -r -p <path of the file> user@Server:<path file to stored>
Run Code Online (Sandbox Code Playgroud)
但不使用公钥/私钥。
遵循的步骤:
使用PuTTYgen生成公钥和私钥。
将公钥复制到远程服务器的authorized_keys
在Windows服务器中将私钥保存到key.ppk
然后
C:\>pscp -i privatekey pathofthefile user@server:pathfiletostored
Run Code Online (Sandbox Code Playgroud)它显示“严重:网络错误:连接被拒绝”
有人可以帮忙吗?
我需要打开一个 INI 文件并读取特定值并检查是否有不同的更改。
但情况是我的 INI 文件没有任何部分或键值
例如,该文件仅包含以下 2 行。我需要的是读取第二行(应该是16001)。如果不匹配,则更改该匹配。
Nexusdb@localhost
16000
Run Code Online (Sandbox Code Playgroud)
请提出任何想法,这对我非常有帮助!
先感谢您。
我希望能够在安装开始之前向最终用户显示发行说明(例如,如果有任何代码更改,他们在升级到新版本之前应该注意)。
我已阅读有关 Pascal 代码BeforeInstall 和 AfterInstallParameters 的文档 ,但我的问题是如何引用我的发行说明文件,因为它打包在安装可执行文件中?我意识到最简单的答案是简单地将安装程序与旁边的文本文件副本打包在一起,以便它可以以这种方式引用它,但是如果用户仅复制可执行文件,这可能会导致引用错误。
实现这一点的最佳方法是什么?
我在Windows Server 2012计算机上有一个FTP服务器,我正试图从中获取setup.exe它.
CMD.EXE日志:
C:\>ftp 1.2.3.4
Connected to 1.2.3.4.
220-FileZilla Server version 0.9.45 beta
220-written by Tim Kosse (tim.kosse@filezilla-project.org)
220 Please visit http://sourceforge.net/projects/filezilla/
User (1.2.3.4:(none)): my_username
331 Password required for my_username
Password:
230 Logged on
ftp> get setup.exe
200 Port command successful
150 Opening data channel for file download from server of "/setup.exe"
.. and stays like this
Run Code Online (Sandbox Code Playgroud)
CMD.EXE日志2:
C:\>ftp 1.2.3.4
Connected to 1.2.3.4.
220-FileZilla Server version 0.9.45 beta
220-written by Tim Kosse (tim.kosse@filezilla-project.org)
220 Please visit http://sourceforge.net/projects/filezilla/ …Run Code Online (Sandbox Code Playgroud) 我想知道是否有任何方式可以从Inno Setup的Exec功能中运行命令提示符,而这会隐藏用户的输出。目前,我有以下功能,我想这样做。
Exec(
'cmd.exe',
'/c ' + InstallPath + '\initdb ' + '-U postgres -A password -E utf8 --pwfile=' +
InstallPath + '\password.txt -D ' + DataPath,
'', SW_SHOW, ewWaitUntilTerminated, ResultCode);
Run Code Online (Sandbox Code Playgroud)
我知道您可以在该Run部分添加一个标志,但实际上还没有找到类似的标志。任何帮助,将不胜感激。
我不知道为什么,但是当我尝试将文件从安装目录复制到时system32,虽然在Inno Setup中读取为成功安装,但它没有这样做。这是我的代码:
[Files]
; specifies what files will be included in the installation
Source: "{src}\..\elt.properties"; DestDir: "C:\elt"; Flags: ignoreversion; BeforeInstall: SetProgressMax(10);
Source: "{src}\..\msvcr120.dll"; DestDir: {sys}; Flags: onlyifdoesntexist;
Run Code Online (Sandbox Code Playgroud)
我还想包括我的日志输出,因为我觉得很奇怪该文件的时间如此之短,我正在2016年7月8日上午11点左右编写此文件
[11:49:36.526] -- File entry --
[11:49:36.528] Dest filename: C:\Windows\system32\msvcr120.dll
[11:49:36.529] Time stamp of our file: 2013-10-04 23:58:24.000
[11:49:36.530] Installing the file.
[11:49:36.566] Successfully installed the file.
Run Code Online (Sandbox Code Playgroud) inno-setup ×5
private-key ×2
sftp ×2
batch-file ×1
checksum ×1
cmd ×1
command-line ×1
ftp ×1
java ×1
key-pair ×1
listener ×1
mina ×1
paramiko ×1
pem ×1
pscp ×1
putty ×1
python ×1
ssh ×1
unix ×1
windows ×1