如何使用私钥/公钥导入OpenSSH密钥,在不提供密码的情况下登录SSH服务器

3

目前正在使用Filezilla从远程服务器复制文件。在复制文件之后需要手动操作完成其他进一步的任务。因此,我需要编写shell脚本来复制并执行其他任务。但是,我遇到了使用私钥/公钥登录服务器的问题。我有一个包含以下内容的密钥文件:

puTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: imported-openssh-key
Public-Lines: 6
--<Public_key>

Private-Lines: 14
---<Private_key>--

Private-MAC: --<some text>--
Filiezilla使用密钥成功连接并正常工作。
我已经花费了很多时间搜索,但是找不到合适的解决方案。 请建议我如何使用给定的密钥无需密码登录并使用shell脚本复制文件。
2个回答

2

John,谢谢你的回复,我按照你的方法操作了。之后出现了以下提示: 输入密钥'private_key.txt'的密码: - Ramgau
1
@Ramgau:这意味着你的特定私钥需要一个密码短语。如果你想要完全自动化,你需要生成一个新的不使用密码短语的公钥/私钥对,并将该公钥添加到服务器中以便登录。 - John Zwinck

2
最终,在做了研究并访问了许多网站后,我找到了自己问题的解决方案。PPK文件包含:
puTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: imported-openssh-key
Public-Lines: 6
--<Public_key>
Private-Lines: 14
---<Private_key>--

Private-MAC: --<some text>--

实际上,我们需要生成自己的私钥,可以选择使用密码短语或不使用密码短语。然后,我们可以使用自己的私钥登录服务器。
在这个url中,有生成私钥的步骤。

https://kb.paessler.com/en/topic/32883-how-can-i-use-private-keys-for-my-ssh-sensors-with-prtg

生成私钥后,我们可以使用 ssh 登录或 stp。
sftp  -oIdentityFile=<generated_private_key>  <user>@<ftp_server>:<remote_directory>

ssh -i <generated_private_key>  <user>@<ftp_server>

我们可以使用重要性stp_command来进行自动化任务: http://www.csee.umbc.edu/courses/104/fall05/ordonez/sftp_cmds.shtml 现在,我可以在登录并列出远程FTP服务器上的文件之后编写shell脚本。如果有任何疑问,请评论。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接