ssh sftp 免密码 公钥登录
大家好,我是烤鴨:
? ? 今天分享的是java ssh sftp 免密碼登錄。
?
1.? JAVA代碼 ssh連接
http://www.360doc.com/content/14/0409/16/9552892_367544139.shtml
https://blog.csdn.net/u013066244/article/details/70198839
公鑰和私鑰不需要用代碼生成,linux有插件的。
?
2.? ? linux ssh-keygen 生成公鑰和私鑰
https://blog.csdn.net/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 failhttps://blog.csdn.net/u010648555/article/details/81878189??
這個講的比較詳細,我的就是密碼錯誤。因為之前生成的秘鑰密碼忘記了。。。。
?
com.jcraft.jsch.SftpException: Permission denied一定要看好異常在哪發生的。
我的是這一行發生的。然后在linux上執行ls命令。
是linux 服務器端的權限不足。沒有讀的權限。把文件夾權限改成可讀的就可以了。
com.jcraft.jsch.SftpException: java.io.IOException: Pipe closedat com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:551)at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:492) Caused by: java.io.IOException: Pipe closedat 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里邊就好了.....改代碼改的都木了...這種問題都沒發現
?
總結
以上是生活随笔為你收集整理的ssh sftp 免密码 公钥登录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在哪里可以查询中国某一地区的历史气象数据
- 下一篇: Lattice 的 Framebuff