在日常工作中,我们经常使用SecureCRT、Putty、WinSCP等工具在Windows系统上登录连接unix/linux服务器或产品设备。一般情况下,我们都是使用root、develop等帐号再加上对应帐号密码登录到设备,但是有的设备只提供了公钥+私钥的方式登录连接到设备,这时候,作为客户端,就需要使用设备端提供的私钥文件来登录连接设备。
那么问题来了,怎么使用WinSCP工具登录连接到设备进行文件传输?
我在做vWVSS增加云端授权认证项目时,需要使用WinSCP工具登录到vWVSS设备,但是vWVSS设备端只提供了私钥文件(clu文件)用于登录,私钥文件内容如下:
-----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私钥文件的内容如下:
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而倒腾那些弯路了。
总结完毕!