Java通过SSH获取Linux文件出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java通过SSH获取Linux文件出错相关的知识,希望对你有一定的参考价值。

使用ch.ethz.ssh2获取Linux文件时如果文件路径中包含中文就出错,如果是英文就不出错,尝试用URLEncoder转码中文字符也没起作用,这个怎么转码可以争取获取到Linux上路径含有中文的文件?
额,是正确获取到Linux上路径含有中文的文件。打错了
此问题已经解决,问题在于Ganymed的jar包运行默认编码是GBK,在IDE中将整个项目的编码指定为UTF-8就可以了。如果将项目打成jar包在命令行使用 java -Dfile.encoding=UTF-8 -jar jar包名称的方式即可

参考技术A 1
ssh
在cygwin中执行:$
ssh
username@remotehost
2
scp
命令scp基于ssh协议,可以将本地文件拷贝到远程服务上的指定目录
参考技术B ssh能登陆,只是文件不能传输的话,设置里改一下,用其他文件传输协议试试,scp,stftp都试试本回答被提问者采纳

ssh-add -l:获取身份时出错:格式无效

【中文标题】ssh-add -l:获取身份时出错:格式无效【英文标题】:ssh-add -l: error fetching identities: invalid format 【发布时间】:2021-08-19 06:52:23 【问题描述】:

尽管ssh-add 声称我的密钥已成功添加,但很明显 ssh-agent 没有转发我的密钥:从远程服务器到第二个远程服务器的 ssh 无法正常工作; capitrano deploy 停止工作

线索是输出:error fetching identities: invalid format,当做ssh-add -l

$ ssh-add ./id_2021
Enter passphrase for ./id_2021: 
Identity added: ./id_2021 (./id_2021)

$ ssh-add -l
error fetching identities: invalid format

我已尝试制作新密钥,但仍然出现此错误。

【问题讨论】:

【参考方案1】:

由于我无法解释的原因,这行得通:

$ eval $(ssh-agent); ssh-add 
Agent pid 23676
Enter passphrase for /home/david/.ssh/id_xyz: 
Identity added: /home/david/.ssh/id_xyz (/home/david/.ssh/id_xyz)

$ ssh-add -l
2048 SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx /home/david/.ssh/id_xyz (RSA)

线索在this forum。

【讨论】:

以上是关于Java通过SSH获取Linux文件出错的主要内容,如果未能解决你的问题,请参考以下文章

如何在windows通过git ssh linux

linux rsync配置出错

Linux程序宕掉后如何通过gdb查看出错信息

通过SSH实现Windows与linux之间传输文件

linux下生成ssh密钥并获取密钥

Java利用 ganymed-ssh2-build.jar来上传文件到linux以及下载linux文件以及执行linux shell命令