Windows无密码传文件至Linux-pscp
用Cygwin或者GitBash所带的ssh-keygen和scp等命令,可以正常生成key,但是会有权限问题。
经测试总是出现私钥644错误,建议私钥600,.ssh目录700。网上各种用chown修改文件属主,
chmod修改文件权限,可以执行成功,但都没有效果,比如chmod600后,再查看文件属性,仍
然为-rw-r---r--,还是644。总有其它用户可读。不知道如果windows7只有一个用户且Administrator
的情况下是什么样子。当前用户是Administrators组里面的用户,系统中还有一个Administrator,
总之应该是windows不明不白的用户权限管理造成的吧。经爬文,考虑puttygen pscp方案。
通过 pscp实现Windows无密码传文件至Linux
所需工具pscp puttygen
一、生成 key
首先运行puttygen,打开生成key的界面
默认选择ssh2、rsa
点击Generate后,鼠标在进度条下方的空白区域,随机点击或拖动或拖动画圆,生成随机key
完成后,保存public key自己命名后缀为pub以示区别。private key 会自动加后缀ppk以示区别。
二、修改public key为openssh需要的格式
使用cygwin中的vi。这里使用git bash中带的vi。记事本是不行的。sublime2等其它工具未测试过。
将key中的前两行和最后一行删除
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20140320"
---- END SSH2 PUBLIC KEY ----
删除后,在开始位置前加 ssh-rsa(空格)
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAvS2ic5Ys+EKmr+OtrJJOZTIT9Q9G/8lQInXZ
随后Esc进入命令模式,光标定位到行尾,使用 Shift+J 将两行合并成一行,并删除两行之间的空格。依次操作,将多行并成一行并删除中间的空格。
修改后,类似于
三、将public key拷贝到目标机器,可以用pscp然后输入密码拷贝
pscp pg_rsa_openssh_format.pub usrtologin@destin_ip:/path/to/userfolder
在目标机,将拷贝过来的public key追加到所要登录的用户的.ssh下的authorized_keys
这里测试.ssh 为700权限,authorized_keys为600权限
四、 无密码拷贝文件
pscp -i pg_rsa.ppk files-need-to-copy-on-source-pc usrtologin@destin_ip:/path/to/folder
五、在Source Tree中使用
Source Tree可以说是git的图形界面,可以方便地管理源码,提供两种认证方式访问git服务器openssh和putty对于Source Tree1.4.1.0,在工具选项里选择SSH客户端为Putty/Plink后,在工具里就会有创建或导入SSH密钥,可以打开其自带的打开puttygen。
注意:在Source Tree中使用Putty方式,git链接要使用http协议开头的链接而不要使用git开头的链接。如 http://githup.com/name/project.git
参考:
http://www.se.cuhk.edu.hk/~hmleung/wordpress/?p=1295
更多推荐
所有评论(0)