概括:
我想将文件从一台服务器 SFTP 到另一台服务器,并使用私钥授权。
我相信公钥已正确安装(WinSCP 允许我使用私钥登录),并且我在生成密钥对时故意没有创建密码……但是当我尝试在命令行上使用 SFTP 时,系统提示我输入不存在的密码和用户密码。
我怎样才能使用未包装的私钥进行 SFTP?
细节:
我有两台服务器:
到服务器123
来自Server123
我想使用私钥登录将文件从一台服务器 SFTP 到另一台服务器。
我使用 puttyGen 生成一个公钥-私钥对:
- 在提供提示的随机移动后,我保存了公钥和私钥
- 我将密码字段留空,并在提示未加密私钥时选择“是”
我在toServer123上安装公钥:
- 我创建了一个用户 paultest,密码为“password123”
- 我测试是否可以以用户 paultest 的身份 ssh 进入 toServer123
- 我创建 /home/paultest/.ssh/authorized_keys 并添加公钥
公钥如下所示:
cat /home/paultest/.ssh/authorized_keys
#=>ssh-rsa verylongstringoflettersandnumbersNoNewlines paultest@toServer123
我修改了权限:authorized_keys(644),.ssh(700)
我在fromServer123上安装私钥:
我创建目录:/home/support_user/sftp_proc (chmod 700)
我将 my_private_key.ppk (chmod 600) 上传到 /sftp_proc
我在 /sftp_proc 中创建了文件 text.txt,其中仅包含“这是一个测试”
以 support_user 身份,我尝试从 fromServer123 通过 SFTP 连接到 toServer123:
sftp -oIdentityFile=./my_private_key.ppk paultest@toServer123
我期望:
由于我使用未包装的密钥文件登录,因此无需进一步提示即可登录到服务器。
我得到了什么:
Connecting to toServer123...
Unauthorized access to or use of this system is prohibited.
All access and use may be monitored and recorded.
Enter passphrase for key './my_private_key.ppk':
我只需按下回车键,即可获得:
paultest@toServer123's password:
调试步骤:
如果我提供最安全的密码,SFTP 就可以工作 - 但我不想使用密码,我想用私钥登录
如果我尝试使用 winSCP 登录并提供私钥,我就可以仅凭私钥登录 - 无需输入密码或密码提示。
问题:
如果我的目标是在不提供密码的情况下登录,并且不提示输入不存在的密码,那么我做错了什么?
编辑
my_private_key.ppk 如下所示:
PuTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: rsa-key-20190528
Public-Lines: 6
LOTSOFLETTERSabcSYMBOLS//++ANDNUMBERS123==
Private-Lines: 14
EVENEVENMORELOTSOFLETTERSabcSYMBOLS//++ANDNUMBERS123==
Private-MAC: cf6c5c786f51a623b28eabe226c98dd6faa09787
答案1
据我所知,sftp
密钥的格式不同。OpenSSH 的密钥应如下所示:
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAyGhJBM7lcIZgvTbLG4S2N1oHAIszqAKKysCQY17Fp0dHvL+A
8mVCYwKL0otQfS2FHmmeRfrpLQtaK7R/DFnxfXn8xczpY8Cn6sv+GUjztN0gacOK
Yyiymnfr4mKgSaRIaJDmi3ua8mlddvwtUJFkAt7WrVAgx0z4MkW5jR+riKnT69D+
<snip>
YFbX0QKBgFTXQ+h79DR4ZwW/f5pop9v8H7GD+g/xRKadgFp4GTKA7RJx64XN/ok+
12+u6pApA8w+ah2K2yoaBIV1d3MatYfUwSJ+0esXTYczBeSXOg6YqrMqjZ4KH2wO
kOyu2/4Dq7VcuK4PSnF1wbd+ZPHffh+YOJIII4iU7fYoRMDHa3tW
-----END RSA PRIVATE KEY-----
所以你应该将你的 ppk 密钥转换为 RSA 密钥。这里如何使用 putty 工具来实现