密钥sftp学习心得

sftp  时间:2021-01-25  阅读:()

工作过程中开发项目用到SFTP,以前没有接触过在使用过程中遇到了一些麻烦特总结如下。在j ava开发过程中使用j sch-0.1.44.j ar做为开发API,在程序屮实现s ftp o

一、OpenSSH在windows下的安装

1、到官方卜载windows 卜•的opensshhttp://nchc.dl.sourceforge.net/sourceforge/s shwindows/setup s sh381-20040709.zip

2、下载后进彳亍解压setup s sh381 -20040709.zip,然后安装实际上是unix下的东西用在了windows上使用了cygwin,而上面的下载到的openssh已经集成了cygwin o

3、导入用户及启动服务

导入本地用户mkgroup-1». .\etc\group 注意空格mkpasswd-1». .\etc\passwd 注意空格

启动服务 net start opensshd 【关闭服务为net stop opensshd]

4、使用s sh命令s sh・p端口用户名@主机IPs ftp・p端I」用户名@主机IPscp-p端口用户名@主机IP:文件路径.

注意端口默认是22,所以一般不用加・p参数。要更改端口可以在etc/sshd_config中更改。

由丁•是本机所以可以使用ssh username创ocalhost进行登录

5、如果在登录是提示

D:\OpenS SH\bin>ssh administrator®10.31.1.15

Could not create directory'/home/username/.ssh,.

The authenticity of host localhost (127.0.0.1)'can't be established.

RSA key fingerprint is 8f:6d:4b:4e:97:95:8c:9f:c7:6d:bf:47:ea:6a:bb:85.

Are you sure you want to continue connecting(yes/no)?yes

Failed to add the host to the list of known hosts(/home/username/.ssh/known_hosts).那么口J以输入yes,然后输入windows登录密码即口J

6、实际上在上面的提示屮不存在/home,是因为注册表屮cygwin的home指向问题造成的

解决办法如下cmd中输入regedit打开注册表找到节点

[HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\mounts v2Vhome]下的值

"native”二”C:\Documents and Se(tings\usename\ 「开始」菜单”这个属性实际指向的位置是不合适的所以把它修改为一个合理的地方例如我在d盘下创建opensshhome H录将native Ju的值改为d:\\opensshhome,然后保存即可接下來在登录时依然提示目录不存在那么就在op en s shho me下创建提示的用户名为目录的文件夹即可,例如建admini strator目录。

重新启动服务 己经没有提示了。

在修改home屈性前登录后的位置是d:\program files\openssh\bin,而现在就是该用户的实际位置了D:\open s shhome\admini strator。

另外到D:\open s shhome\u sername\.ssh下会看到一个文件known_ho sts,这里面存放的就是公钥了。

二、 SFTP密钥访问公钥在服务器私钥在客户端

我在木机上实现用木机客户端访问木机服务器。

1、生成密钥

D:\OpenSSH\bin>ssh-keygen-t rsa

Generating public/private rsa key pair.

Enter file in which to save the key(/home/username/.ssh/id_rsa):

Enter passphrase(empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in/home/username/.ssh/id rsa.

_

Your public key has been saved in/home/username/.ssh/id_rsa.pub.

The key fingerprint is:

73:37:d0:8b:0f:9d:31:56:84:ld:fe:le:bc:cl:5d:f2 usemame@mdt-9323 e858fb8

输入ssh-keygen-t rsa表示生成RSA密码 口J以输入存放位置如果不输入位置使用默认值,home下的本用户名(admini strator)下的.s sh下中间出现要求输入密码的可以输入也可以不输入如果输入则要记住该密码。

这样在/home/username/.s sh/ 卜生成两个文件id_rsa及id_rsa.pub, id_rsa是私钥 id_rsa.pub是公钥私钥是客户端用的改公钥名称id_rsa.pub为authorized_keys,不改也可以。

2、修改opens sh服务器端配置

在安装位置的etc目录下找到文件sshd_c onfig例如我的文件位置在

D: \OpenSSH\etc\sshd_config,修改以卜两项

AuthorizedKeysFile.s sh/authorized_keys

PasswordAuthentication no

第一个参数用于说明公钥文件位置第二个是强制使用密钥访问而不是用户名及密码 当然笫二个参数可以保持yes,这样可以有两种方式访问。

重启openssnet stop opensshdnet start opensshd

3、为了验证是否密钥机制主效使用习惯的PUTTY工具进行验证不过直接使用上而生成的私钥是不行的需要将私钥转换为PUTTY可以使用的转换过程如下:a^打开PUTTY安装目录下的puttygen.exe

点击“载入”选择上面提到的私钥文件id.rsa,如果生成私钥时设置了密码那么此吋需要输入相应的密码方可继续成功会出现如下提示:

b、点击确定后界面如下:

点击“保存私钥”保存一个地方即可生成P UTTY使用的key文件。之后就可以使用PUTTY来访问ssh server了。

过程如Kc、打开PUTTY口录下的putty.exe,设置IP、 prot及Session如下:

分类◎:

口 退岀时关闭宙口凶

O始终O从不®仅正常退出

关于① 取消

d、设置用户名。在“连接”■“数据”下设置

Q会诂 发送到服务器的数据

关于辺 打开◎ 取消©e、设置私钥文件在“连接”一“SSH”一“认证”下选择上面转换后的私钥文件

f、保存se ssion,回到“会话”界面点击“保存”,这样在会话列表中就会出现,便于以后使用。

分类⑥:

会话 PuTTf会话基本设置

日志记录 指定要连接的目的地址a终端 主机名或IP地址迪 端口®

10.31 .1 .15 22

匡接类型

日窗口 O Raw O Telnet O Rlogin@SSH串口

择颜色 mytest-key

密钥+1"认证・

TTY

退出时关闭宙口凶

O始终O从不 G仅正常退出

Xl l

关于® 打开◎g、点击“打开”开始登录如果私钥没冇设置密码那么会出现如下界而。

登录成功。

三、 java程序通过密钥方式使用JSch API访问SSHpackage Test.sftp;import com.jcraftjsch.*;public class TestKeyAcc {public static void main(String[]arg) {

String key File=HD:/opensshhome/adminislralor/.ssh/id_rsan;

String user=;

String host="10.31.1.15";

String passphrase=Mn;int port=22;try{

JSchjsch=new JSch();j sch.addldentity(keyFile);

Session session=jsch.getSession(user,host,port);

//user name and passphrase will be given via Userinfo interface.

Userinfo ui=new MyUserlnfo(passphrase);session.setUserlnfo(ui);session.connect();

Channel channel=session.openChannel(();

ChannelSftp sftp=(ChannelSftp)channel;

System.t>w/.println(sftp.pwd());

}catch(Exception e) {e.printStackTrace();

System j;wr.println(e);

}

Ipublic static class MyUserlnfo implements Userinfo {private String passphrase=null;public MyUserInfo(String passphrase) { this.passphrase=passphrase;}public String getPassphrase() {return passphrase;

}public String gelPassword() {return null;public boolean promptPassphrase(String s) {return true;

)public boolean promptPassword(String s) {return true;

快云科技:香港沙田CN2云服务器低至29元/月起;美国高防弹性云/洛杉矶CUVIP低至33.6元/月起

快云科技怎么样?快云科技是一家成立于2020年的新起国内主机商,资质齐全 持有IDC ICP ISP等正规商家。云服务器网(yuntue.com)小编之前已经介绍过很多快云科技的香港及美国云服务器了,这次再介绍一下新的优惠方案。目前,香港云沙田CN2云服务器低至29元/月起;美国超防弹性云/洛杉矶CUVIP低至33.6元/月起。快云科技的云主机架构采用KVM虚拟化技术,全盘SSD硬盘,RAID10...

LOCVPS全场8折,香港云地/邦联VPS带宽升级不加价

LOCVPS发布了7月份促销信息,全场VPS主机8折优惠码,续费同价,同时香港云地/邦联机房带宽免费升级不加价,原来3M升级至6M,2GB内存套餐优惠后每月44元起。这是成立较久的一家国人VPS服务商,提供美国洛杉矶(MC/C3)、和中国香港(邦联、沙田电信、大埔)、日本(东京、大阪)、新加坡、德国和荷兰等机房VPS主机,基于XEN或者KVM虚拟架构,均选择国内访问线路不错的机房,适合建站和远程办...

Sharktech$129/月,1Gbps不限流量,E5-2678v3(24核48线程)

Sharktech最近洛杉矶和丹佛低价配置大部分都无货了,只有荷兰机房还有少量库存,商家又提供了两款洛杉矶特价独立服务器,价格不错,CPU/内存/硬盘都是高配,1-10Gbps带宽不限流量最低129美元/月起。鲨鱼机房(Sharktech)我们也叫它SK机房,是一家成立于2003年的老牌国外主机商,提供的产品包括独立服务器租用、VPS主机等,自营机房在美国洛杉矶、丹佛、芝加哥和荷兰阿姆斯特丹等,主...

sftp为你推荐
软银科技软银通信科技(上海)有限公司大连分公司怎么样?腾讯空间首页手机QQ空间首页从哪里进入!自然吸气和涡轮增压哪个好涡轮增压和自然吸气哪个更适合跑电脑杀毒软件哪个好电脑用什么杀毒软件好?江门旅游景点哪个好玩的地方江门有那个地方好玩呢杰士邦和杜蕾斯哪个好安全套杜蕾丝好还是杰士邦好?手机浏览器哪个好用手机用哪个浏览器好一点海克斯皮肤哪个好LOL用100块是抽海克斯好还是抽蛮王的生化领主的活动还是直接买皮肤好播放器哪个好手机本地视频播放器哪个好用云盘哪个好免费的网盘哪个好?更大、更安全、更实用?
双线服务器租用 我的世界服务器租用 已备案域名出售 GGC 泉州移动 免费全能主机 网游服务器 shopex主机 ca187 上海电信测速 双线空间 注册阿里云邮箱 买空间网 存储服务器 广州服务器托管 windowsserver2012 cdn免备案空间 rewrite规则 瓦工工具 lighttpdwindows 更多