📜  带有私钥 cli 的 sftp - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:09:45.961000             🧑  作者: Mango

带有私钥的 sftp - Shell/Bash

在使用SSH协议进行文件传输时,通常会使用SFTP(Secure File Transfer Protocol)来代替FTP。SFTP可以加密数据传输,确保数据的安全性。同时SFTP还可以使用私钥进行身份验证,不需要输入密码,更加方便快捷。

本文将介绍如何使用带有私钥的SFTP进行文件传输。

准备工作
  1. 生成私钥

首先需要生成密钥对,可以运行以下命令:

ssh-keygen -t rsa

根据提示输入文件名,在默认情况下会在用户的~/.ssh/目录中生成公钥和私钥文件,默认文件名分别为id_rsaid_rsa.pub。在生成文件时可以选择不使用密码,这样在使用私钥进行验证时就不需要输入密码了。

  1. 上传公钥

将公钥上传到服务器,可以使用以下命令:

ssh-copy-id user@host

其中,user为服务器的用户名,host为服务器的IP地址或域名。输入登录密码后,会将公钥上传到服务器的~/.ssh/authorized_keys文件中。下次连接时,使用私钥即可免密码登录。

使用SFTP传输文件

使用SFTP传输文件需要安装SFTP客户端,可以使用以下命令安装:

sudo apt install openssh-client
使用密码登录SFTP

可以直接使用sftp命令登录SFTP服务器:

sftp user@host

其中,userhost分别为服务器的用户名和IP地址或域名。

登录后,可以使用以下命令进行操作:

  • ls:列出当前目录下的文件列表;
  • cd path:切换到指定目录;
  • get file:从远程服务器下载文件;
  • put file:上传文件到远程服务器;
  • ...
使用私钥登录SFTP

在登录SFTP时使用私钥进行身份验证,需要在命令后添加私钥文件的路径,例如:

sftp -i /path/to/private_key user@host

其中,/path/to/private_key为私钥文件的路径。

登录后,使用的命令和使用密码登录时一样,区别在于使用私钥进行身份验证。

总结

使用带有私钥的SFTP进行文件传输可以免去输入密码的繁琐,并且可以确保数据的安全性。本文介绍了如何生成密钥对、上传公钥、安装SFTP客户端以及使用密码和私钥登录SFTP。通过本文的介绍,您应该已经掌握了如何使用带有私钥的SFTP进行文件传输。