如何使用私钥/公钥在不提供密码的情况下登录 ssh 服务器-imported-openssh-key

Posted

技术标签:

【中文标题】如何使用私钥/公钥在不提供密码的情况下登录 ssh 服务器-imported-openssh-key【英文标题】:How to login ssh server without giving password using private/public key- imported-openssh-key 【发布时间】:2016-08-23 07:16:09 【问题描述】:

目前 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 脚本复制文件

【问题讨论】:

【参考方案1】:

您需要将私钥单独放在客户端机器上的一个文件中,然后:

ssh -i /path/to/ssh/key USER@HOSTNAME

这里有一个教程:https://support.rackspace.com/how-to/logging-in-with-an-ssh-private-key-on-linuxmac/

【讨论】:

约翰,感谢您的回复,我按照您的方式进行操作。之后出现以下提示:Enter passphrase for key 'private_key.txt': @Ramgau:这意味着您的特定私钥需要密码。如果您想要完全自动化,您需要生成一个不使用密码的新公钥/私钥对,并将该公钥添加到服务器以便您可以登录。【参考方案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

现在我可以在登录后编写 shell 脚本并在远程 FTP 服务器上列出文件。如果有什么混乱。请评论。

【讨论】:

以上是关于如何使用私钥/公钥在不提供密码的情况下登录 ssh 服务器-imported-openssh-key的主要内容,如果未能解决你的问题,请参考以下文章

SSH详解-4.多个ssh公钥

使用ssh公钥实现免密码登录

Xshell配置ssh免密码登录-密钥公钥(Public key)与私钥(Private Key)登录

Linux使用ssh公钥实现免密码登录Linux

Linux使用ssh公钥实现免密码登录Linux

Linux使用ssh公钥实现免密码登录Linux