Freesshd配合xshell实现sftp上传


 

Freesshd配合xshell实现sftp上传

 

说明:windows  server 是因为安装了Freesshd 而成为ssh服务器或者sftp服务器,客户端用 xshell连接此服务器,密匙使用的是RSA key,其他类型的key没有测试。

 

Freesshd配置步骤:

 

1、在服务器上安装Freesshd,安装后,进行设置,在 users 页面里添加一个用户,假设login为tushu(记住它,后面有用),can use 仅为 sftp, 验证方式设为 public  key。

2、在sftp页面中 设定文件上传目录,上传的文件就放在这个目录下,Sftp命令符中使用put命令上传。

3、在automatic update 页面中 取消 check  new version,注意:这是很重要的,如果不取消的话,Freesshd 的后台服务会链接到 官网检查是否有新版本,有时会弹出一个“访问 xxxx.com失败”的异常对话框,这是很讨厌的,所以要取消检测新版本。

4、在 server status 页面,如果 ssh server is not running,未必就不正常,要看后台服务是否已经启动,服务名是 FreesshdService,如果此后台服务已经启动,这里的 ssh server 显示红叉是正常的【即使点击了也不会启动的】,建议在安装Freesshd 时,允许作为后台服务运行,这样开机可以自动运行。

5、Authentication 页面里,有disabled 、allowed  ,required三个选项,disabled表示禁用,allowed 表示允许,但不是必须的,假设 password 和public key 都选择 allowed,则表示登录允许使用这两种验证模式,如果是required,则表示必须要求的验证模式,一般说来不需要改动,默认都是allowed。

 

public  key 模式登录方法

 

6、在 Freesshd的ssh页面中,找到RSA key文字,在右侧有一个new按钮,它表示生成一个新的 rsa 私匙文件,点击它,选择1024位,生成一个新的 rsa 私匙文件,文件名为privatekey.rsa。

7、拷贝 privatekey.rsa 到 客户机,客户机上安装了xshell,在xshell的工具菜单中,选择 “用户密匙管理者”,在弹出的对话框中,点击“导入”,选择 privatekey.rsa 文件导入,这时候在用户密匙列表中显示出privatekey,然后在右下方点击“生成…”,【生成一个公匙对】,在弹出的对话框中,密匙类型 选择rsa,(因为我们的私匙是rsa类型的),密匙长度1024位,点击下一步,你会看到生成了一个公匙对;再点击下一步,出现“用户密匙信息”对话框【这一步的功用不太明白,可能是根据刚刚生成的公匙,再次生成一个新私匙】,自己输入密匙名称(假设为abc),然后输入给用户密匙加密的密码;再点击下一步,在公匙注册对话框中,点击“保存为文件”,这样就保存了生成的公匙文件,注意,在保存文件对话框中,公匙文件名称默认扩展名是pub,我建议 将保存类型 设为 All files(*.*),取名为tushu它是没有扩展名的!这个 tushu就是你在 Freesshd 添加的用户登录名,也就是说,保存公匙文件时,取名要和在freesshd注册的用户登录名一致。

8、保存完公匙文件后,将会显示 “用户密匙”对话框,你会看到添加了一个新的私匙abc,这个新的私匙abc和刚才的公匙对应

9、生成的tushu 文件,上传到 Freesshd的公匙保存目录中,它是在 Freesshd 的 authentication页面中设置的。

10、           重启 服务器的Freesshd 服务,这一点很重要!!

11、           回到 xshell中,新建一个连接, 协议选择sftp,主机和端口号自己添,端口号一般是22.

12、           在 用户身份验证 中,方法选择 public key,用户是tushu(表示你登录到freesshd后身份就是tushu),用户密匙 是abc(注意不是最初导入的privatekey,而是后来的abc),密码是生成abc密匙时候填写的那个,点击确定。

13、           建立了这个连接后,就可以连接 ssh服务器了。

 

注意事项:

1、每当修改了 freesshd配置或者上传了公匙文件后,都要重启后台服务。

2、公匙文件要以增加的用户名tushu命名,没有扩展名。

3、在本例的freesshd服务中,仅允许使用用户使用sftp,所以在xshell中建立连接,要使用sftp协议,而不是ssh协议。

4、上述操作密匙使用的是rsa 加密方式。

5、回顾整个密匙生成过程,先是在freesshd生成一个私匙文件privatekey.rsa,然后将它导入xshell,生成一个公匙文件tushu,紧接着又生成一个私匙abc,文件tushu上传到ssh服务器【也就是freesshd的密匙保存路径下】,在xshell客户端用私匙abc链接ssh服务器,注意:ssh服务器上生成的那个私匙文件privatekey.rsa 不要删除,否则会连接失败,原因不明。

6、如何将abc密匙复制到另一个客户端??

如果你想在另外一台客户机B上连接ssh服务器,首先在客户端安装xshell,然后在上述客户端,打开菜单项“用户密匙管理者”,导出用户私匙abc,保存为一个文件,然后在B客户端,导入xshell这个密匙,B就可以和A一样使用这个abc密匙了。


### 如何在 Xshell 中使用 SFTP 命令上传文件 要在 Xshell 中通过 SFTP 协议上传文件,可以按照以下方法操作: #### 连接远程服务器 首先需要建立与远程服务器的连接。可以在 Xshell 的终端中输入 `sftp` 命令并指定目标服务器 IP 地址或域名[^2]。例如: ```bash sftp 192.168.90.50 ``` 如果希望直接提供用户名,则可使用如下格式: ```bash sftp [email protected] ``` 执行上述命令后,系统会提示输入用户的密码以完成身份验证。 #### 查看本地和远程目录 一旦成功连接至远程服务器,可通过以下命令确认当前工作目录的位置以及列出其中的内容: - **查看远程目录路径**: 使用 `pwd` 显示远程服务器上的当前位置。 - **查看本地目录路径**: 使用 `lpwd` 展示本机的工作目录位置[^4]。 #### 切换目录 为了更方便地管理文件传输过程中的源文件夹和目标文件夹,可能还需要调整所在目录: - **更改远程服务器目录**: 执行 `cd /path/to/remote/directory` 跳转到所需的远端存储区域。 - **更改本地计算机目录**: 输入 `lcd /path/to/local/directory` 来设定本地起始点以便于后续操作。 #### 文件上传 当一切准备就绪之后,就可以利用 `put` 指令把选定的数据发送给对方机器了。基本语法如下所示: - 将单一文档传送到另一侧: ```bash put localfile remotefile ``` - 同时传送多个档案或者整个资料夹过去的话则加上参数 `-r` 实现递归复制功能: ```bash put -r sourcedir destdir ``` 最后别忘了结束会话前记得关闭链接以免资源浪费: ```bash exit ``` 以上就是在 Xshell 环境里借助 SFTP 技术实现文件上载的具体流程说明。 ```python # 示例 Python 脚本模拟自动化的部分步骤 (仅作演示用途) import paramiko transport = paramiko.Transport(("example.com", 22)) username = "your_username" password = "your_password" try: transport.connect(username=username, password=password) sftp = paramiko.SFTPClient.from_transport(transport) # Upload a file filepath = '/home/user/remotepath/file.txt' localpath = 'C:\\Users\\User\\localpath\\file.txt' sftp.put(localpath, filepath) finally: if sftp: sftp.close() if transport: transport.close() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值