在日常工作中,我们经常使用SecureCRT、Putty、WinSCP等工具在Windows系统上登录连接unix/linux服务器或产品设备。一般情况下,我们都是使用root、develop等帐号再加上对应帐号密码登录到设备,但是有的设备只提供了公钥+私钥的方式登录连接到设备,这时候,作为客户端,就需要使用设备端提供的私钥文件来登录连接设备。
那么问题来了,怎么使用WinSCP工具登录连接到设备进行文件传输?
我在做vWVSS增加云端授权认证项目时,需要使用WinSCP工具登录到vWVSS设备,但是vWVSS设备端只提供了私钥文件(clu文件)用于登录,私钥文件内容如下:
|
1 2 3 4 5 6 7 8 9 10 11 |
-----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAyDL7Z0pwFDPFjmVN573kcY6rUxpgGtSnSwVpMwPGIfvw38jM Ak0lTyVcgTUnPZQYKeShRM8rkxETYdlHxZyQSwy1wC9WqExqiUuI/2paVm+WqkO2 ... ... KiIAlIeAkApGS1CwxHsHtZ+ESq4kPCmkje48+xxGVZL4bYewUwPKz6Bpv21/jgBa Bg4QVo/KSUZd8ZFbMVGyXzlW8UGc9eGFGTlGKY9jEZy6bQyXPZnRDjAyaFoLdaSL ErvxbbfwPssx4e8HtypqOqDKhzIzcziHWCQCPwIDAQABAoIBAAa9IJVDfi5P59B5 ... ... ... ... -----END RSA PRIVATE KEY----- |
顿时懵了,因为没有这样使用过WinSCP,经过几番学习、折腾,最终完美解决了此问题,总结如下:
第一步,WinSCP【登录】-》【新建站点】,配置好基本的协议、主机IP和端口、用户名之后,点击【高级】。

第二步,【高级站点设置】-》【SSH】-》【验证】,在【验证参数】栏导入私钥文件(clu私钥文件)。
到这步如果你认为只要导入私钥文件clu就万事大吉,一切ok了,那只能说你太天真了,到这里还远远没有结束,并且爆出了一个问题,请见下一步骤。

第三步,当我导入clu私钥文件后提示如下问题。

点击【确定】按钮可以自动生成在WinSCP上可使用的clu.ppk私钥文件。
第四步,配置、保存clu.ppk私钥文件。



到这里,在WinSCP上使用的clu.ppk私钥文件就生成好了,此clu.ppk私钥文件的内容如下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
PuTTY-User-Key-File-2: ssh-rsa Encryption: none Comment: imported-openssh-key Public-Lines: 6 AAAAB3NzaC1yc2EAAAADAQABAAABAQDIMvtnSnAUM8WOZU3nveRxjqtTGmAa1KdL BWkzA8Yh+/DfyMwCTSVPJVyBNSc9lBgp5KFEzyuTERNh2UfFnJBLDLXAL1aoTGqJ S4j/alpWb5aqQ7agybKwrJM9q7BhAwqAsYx18jvsaS4nE5yrBzWmJVYlbFZUNuix EIUvo+hAdnofGxwqIgCUh4CQCkZLULDEewe1n4RKriQ8KaSN7jz7HEZVkvhth7BT A8rPoGm/bX+OAFoGDhBWj8pJRl3xkVsxUbJfOVbxQZz14YUZOUYpj2MRnLptDJc9 mdEOMDJoWgt1pIsSu/Ftt/A+yzHh7we3Kmo6oMqHMjNzOIdYJAI/ Private-Lines: 14 AAABAAa9IJVDfi5P59B5PHwWekAQS1gKxT1h9xehYP8km2C9eEgwHB3ftufJHCoF PgLmn0GZvovwZUkYBA0BIVdXg8vi66NCdKpJmDRy5HOkgtHyA6JLkTQsVeV4iaRD yTYawhm+4DmAI+A7UiBimp1vKrEjBJlR4j4HcyGyqqkF3WV+CDQ/LywIjzbyvsjF kgVWh21xCzEyS1/gKNglCQV6lfIhZ/uTOgp4ZN7oGsvH1EuTpx3mNaZkAmPq4bDc ufVl11zbDiTU1a/aAaA3U4nNqAuofgtZKWM2L1jf/ISYNe8J05+E4kdA2nFRdbMT CRWhhSgWaOXdazQqeQ/6njjq1tEAAACBAOXF+F8tJ8LxnVIQnPtzZ2N+ZWb3IgbO +eSw8ZqkUbFt0PJH9R5uCWTYrJ/gdiOmzElASPVcGQaWwZFsaTstmmr8ueruZMKG SgnngrTeuxRvCXQEde9VAskSYqfCh3SI9/gPQRe8TzHy4z7fOV83cIaEsLRLXC9U 7hFLwujlxIKdAAAAgQDfDNj/7BDXVwZLzDV/bGNLa6ELA/Iq1oHM2pvvoFC3kRU8 utnGxPSB3n32QxxW4DyigvGzgZzAanq2sAVsygW0PoZBiRYzyXcOClBzuU9UKHk0 AHp+dZ81j1NQrySeZRjjqhnmcMCRvMHGbpIJXOeNT8UG51cMvRiW2Fo1XKpDiwAA AIEA0tKlAHpBFj2OeAwSb4D2/wCdjgpIhmNfZpZWyAa4Y9dfrPMeRDuVhh0ueHlk rBewSfRowVorUxcnKv89FUe/oW2Tl5S3auaR7YrJHu+JfeWxSCyslakDpkVhjoQ5 /RDAtk0q+wxQbjw3YAY70r2JmjdMX8l19rodC6H8ynVG8s4= Private-MAC: 2b6eacb2dcfbbb0fa8bc444a66041777deddf8a2 |
第五步,【高级站点设置】-》【SSH】-》【验证】,在【验证参数】栏导入私钥文件(clu.ppk私钥文件)。

走到这里就能顺利登录连接unix/linux服务器或产品设备了。
除了以上方式可以由RSA PRIVATE KEY生成对应的ppk私钥文件以外,还有一种方法可以生成对应的ppk私钥文件,那就是单独下载一个PuTTYgen工具,直接将clu私钥文件的RSA PRIVATE KEY转换成clu.ppk私钥文件的openssh-key,这样的话就可以直接使用WinSCP工具在【高级站点设置】-》【SSH】-》【验证】里面的【验证参数】栏直接导入clu.ppk私钥文件,直接就能登录连接unix/linux服务器或产品设备了,不用在WinSCP中因为导入的是clu私钥文件RSA PRIVATE KEY而倒腾那些弯路了。
总结完毕!