ssh sftp 免密码 公钥登录

本文分享了Java代码实现SSH连接、Linux下ssh-keygen生成公钥和私钥的方法,以及如何配置免密码登录SFTP。文章还列举了在实际操作中可能遇到的问题,如秘钥带密码、异常处理等,提供了详细的解决步骤。

大家好,我是烤鸭:

    今天分享的是java ssh sftp 免密码登录。

 

1.  JAVA代码 ssh连接

http://www.360doc.com/content/14/0409/16/9552892_367544139.shtml

https://blog.youkuaiyun.com/u013066244/article/details/70198839

公钥和私钥不需要用代码生成,linux有插件的。

 

2.    linux ssh-keygen 生成公钥和私钥

https://blog.youkuaiyun.com/xinshui151/article/details/79187563

SSH-keygen参数说明:

https://www.cnblogs.com/sunjf/p/ubutu_ssh.html

 

3.   linux 免密连接

sftp -oIdentityFile=/root/.ssh/id_dsa -oPort=8002 username@ip地址


oPort :  端口

oIdentityFile: 私钥文件(绝对路径)

username: 用户名

ip地址:ip

 

4.   实际中遇到的问题

按照上面的连接之后,还让我输入密码。

嗯。我生成的dsa秘钥是带密码的。。。。然而我忘了。太他么2了。

ssh-keygen -t dsa

没办法,重新生成一个吧。红线的部分一定不要填,直接回车!!!

另外说一句,用rsa和dsa生成都可以的,并没有什么区别。

ssh-keygen -t rsa

 

5.  关于两个常见异常:

com.jcraft.jsch.JSchException: invalid privatekey

很明显,就是私钥取错了,我一开始获取的是公钥就报的这个错,换成私钥 就好了,不带.pub后缀的文件。

com.jcraft.jsch.JSchException: Auth fail

https://blog.youkuaiyun.com/u010648555/article/details/81878189  


这个讲的比较详细,我的就是密码错误。因为之前生成的秘钥密码忘记了。。。。

 

com.jcraft.jsch.SftpException: Permission denied

一定要看好异常在哪发生的。

我的是这一行发生的。然后在linux上执行ls命令。

是linux 服务器端的权限不足。没有读的权限。把文件夹权限改成可读的就可以了。

com.jcraft.jsch.SftpException: java.io.IOException: Pipe closed
    at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:551)
    at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:492)
Caused by: java.io.IOException: Pipe closed
    at java.io.PipedInputStream.read(PipedInputStream.java:307)
    at com.jcraft.jsch.Channel$MyPipedInputStream.updateReadSide(Channel.java:362)
    at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:515)

这个异常是在执行put操作出现的,看了半天,才发现put操作在 sftp.disconnect() 后执行的,代码如下:

放到try里边就好了.....改代码改的都木了...这种问题都没发现

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烤鸭的世界我们不懂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值