首页 > 解决方案 > 如何改进或删除 sftp 硬码密码骆驼码

问题描述

我有以下代码: -

    public class FtpRouteBuilder extends RouteBuilder {
        @Override
        public void configure() throws Exception {
            try{
                from("file:c:/temp/input/")
                        .streamCaching()
                        .to("sftp://sftpuser@192.168.10.54:/sftpuser/?password=dev&passiveMode=true");
            }catch (Exception ex){
                System.out.printf("ex: "+ex.getMessage());
            }
        }
    }

我在代码中有 sftp 密码“dev”。那是丑陋的。如何删除它并以更好的方式设置它?

标签: passwordsapache-camelsftp

解决方案


  1. 查看 sftp 服务器的文档,了解如何使用 SSH 密钥设置访问权限。如果您还没有密钥对(例如使用 ssh-keygen),则需要生成一个密钥对,然后将公钥放在 sftp 服务器上。不要使用密码短语。如果你这样做,你必须将它添加到骆驼路线,所以它看起来一样丑陋。

  2. 检查您是否可以使用您的私钥与 ftp 客户端进行传输。即在尝试将它们与骆驼一起使用之前测试它们。

  3. 更改您的路线以使用私钥

    from("file:c:/temp/input/")
        .streamCaching()
        .to("sftp://sftpuser@192.168.10.54:/sftpuser/?privateKeyFile=path-to-private-key-file&passiveMode=true");
    

推荐阅读