如何使用私钥/公钥在不提供密码的情况下登录 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的主要内容,如果未能解决你的问题,请参考以下文章