From 5c18ba96ad84210d430abc3e709cc4dc6316f740 Mon Sep 17 00:00:00 2001 From: Arunvel Sriram Date: Wed, 12 Aug 2020 15:48:43 +0530 Subject: [PATCH] Support key based authentication --- .talismanrc | 12 +++- cmd/root.go | 1 + pkg/client/sftp_client.go | 66 ++++++++++++++++-- pkg/config/config_test.go | 1 + sftp/ssh/key_with_passphrase | 104 +++++++++++++++------------- sftp/ssh/key_with_passphrase.pub | 2 +- sftp/ssh/key_without_passphrase | 100 +++++++++++++------------- sftp/ssh/key_without_passphrase.pub | 2 +- 8 files changed, 181 insertions(+), 107 deletions(-) diff --git a/.talismanrc b/.talismanrc index b68c614..f125017 100644 --- a/.talismanrc +++ b/.talismanrc @@ -1,3 +1,11 @@ fileignoreconfig: -- filename: pkg/config/config.go - checksum: 3d4547bb16555a9afb9277fa6d475c97f295d69b2eb9f000c9d89501f90f8c8c +- filename: sftp/ssh/key_with_passphrase.pub + checksum: f54d3e10f89dcec5c69bba33c5bbadff2b0241306af8ce37f7b5695080ccdea2 +- filename: sftp/ssh/key_without_passphrase.pub + checksum: 2ec64dcc1725d82c1b1bce8a9769dd6effcb785ceb6682471d9f30d932abf64f +- filename: sftp/ssh/key_without_passphrase + checksum: 2e5bc6583ffed56355367c75bc533e57ceb19e31d1ecc44516189074e55a5142 +- filename: sftp/ssh/key_with_passphrase + checksum: f59431b0b023ff7e9b85830121e8869da1fc5780d809ecfb0a28843239cac578 +- filename: pkg/client/sftp_client.go + checksum: 0100aeebda7fff385ed63faf81eebbcc958433d0474e299dc31bf11eb66a1905 diff --git a/cmd/root.go b/cmd/root.go index 688b1f7..e39535e 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -21,6 +21,7 @@ var rootCmd = &cobra.Command{ Short: "", Long: "", Run: func(cmd *cobra.Command, args []string) { + log.Debugf("config dump: %+v\n", cfg) if err := server.Start(cfg); err != nil { log.WithFields(log.Fields{"event": "starting server"}).Fatal(err) } diff --git a/pkg/client/sftp_client.go b/pkg/client/sftp_client.go index 4ead26b..40f019c 100644 --- a/pkg/client/sftp_client.go +++ b/pkg/client/sftp_client.go @@ -2,6 +2,7 @@ package client import ( "fmt" + "github.com/arunvelsriram/sftp-exporter/pkg/utils" log "github.com/sirupsen/logrus" @@ -49,13 +50,70 @@ func (d defaultSFTPClient) FSStat() (*model.FSStat, error) { }, nil } +func parsePrivateKey(key, keyPassphrase []byte) (parsedKey ssh.Signer, err error) { + if len(keyPassphrase) > 0 { + log.Debug("key has passphrase") + parsedKey, err = ssh.ParsePrivateKeyWithPassphrase(key, keyPassphrase) + if err != nil { + log.Error("failed to parse key with passphrase") + return nil, err + } + return parsedKey, err + } + + log.Debug("key has no passphrase") + parsedKey, err = ssh.ParsePrivateKey(key) + if err != nil { + log.Error("failed to parse key") + return nil, err + } + return parsedKey, err +} + +func sshAuthMethods(cfg config.Config) ([]ssh.AuthMethod, error) { + pass := cfg.GetSFTPPass() + key := cfg.GetSFTPKey() + keyPassphrase := cfg.GetSFTPKeyPassphrase() + + if len(key) > 0 && utils.IsNotEmpty(pass) { + log.Debug("will be authenticating using key and password") + parsedKey, err := parsePrivateKey(key, keyPassphrase) + if err != nil { + return nil, err + } + return []ssh.AuthMethod{ + ssh.PublicKeys(parsedKey), + ssh.Password(pass), + }, nil + } else if len(key) > 0 { + log.Debug("will be authenticating using key") + parsedKey, err := parsePrivateKey(key, keyPassphrase) + if err != nil { + return nil, err + } + return []ssh.AuthMethod{ + ssh.PublicKeys(parsedKey), + }, nil + } else if utils.IsNotEmpty(pass) { + log.Debug("will be authenticating using password") + return []ssh.AuthMethod{ + ssh.Password(pass), + }, nil + } + + return nil, fmt.Errorf("either one of password or key is required") +} + func newSFTPClient(cfg config.Config) (SFTPClient, error) { addr := fmt.Sprintf("%s:%d", cfg.GetSFTPHost(), cfg.GetSFTPPort()) + auth, err := sshAuthMethods(cfg) + if err != nil { + log.Error("unable to get SSH auth methods") + return nil, err + } clientConfig := &ssh.ClientConfig{ - User: cfg.GetSFTPUser(), - Auth: []ssh.AuthMethod{ - ssh.Password(cfg.GetSFTPPass()), - }, + User: cfg.GetSFTPUser(), + Auth: auth, HostKeyCallback: ssh.InsecureIgnoreHostKey(), } diff --git a/pkg/config/config_test.go b/pkg/config/config_test.go index fea39c9..f37a189 100644 --- a/pkg/config/config_test.go +++ b/pkg/config/config_test.go @@ -53,6 +53,7 @@ func (s *ConfigTestSuite) TestConfigLoadConfigPanicsWhenBothKeyAndKeyFileAreGive s.PanicsWithValue("only one of sftp_key, sftp_key_file should be provided", func() { config.MustLoadConfig(s.fs) }) } + func (s *ConfigTestSuite) TestConfigLoadConfigPanicsForInvalidKey() { viper.Set(c.ViperKeySFTPUser, "sftp user") viper.Set(c.ViperKeySFTPKey, "invalid encoding") diff --git a/sftp/ssh/key_with_passphrase b/sftp/ssh/key_with_passphrase index 3f60e9d..7264f92 100644 --- a/sftp/ssh/key_with_passphrase +++ b/sftp/ssh/key_with_passphrase @@ -1,50 +1,54 @@ ------BEGIN OPENSSH PRIVATE KEY----- -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 -kNAA== ------END OPENSSH PRIVATE KEY----- +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-128-CBC,CB850C0867D33BF109BE25D73F2C6A57 + +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 +-----END RSA PRIVATE KEY----- diff --git a/sftp/ssh/key_with_passphrase.pub b/sftp/ssh/key_with_passphrase.pub index dccd836..888347f 100644 --- a/sftp/ssh/key_with_passphrase.pub +++ b/sftp/ssh/key_with_passphrase.pub @@ -1 +1 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQD1dXneJhlYbXOCy/u4DyrsIN+HD0DacfBJAHnMFGxuqlype7pQrUTWUH+DiNl8rfpSZTjEKnJqSA/K+TlKpmXgCcBsAzOv16F3IvHupd+EMyiA9lF9phmTgSH/DNn8XDbDwPIDbcQbjx/nJIQa8dH+/jwqw/WQ6UbIudOS7rkDio66V3NFzMl+qIunvnByN7wZucFWfD6F7wOfI4zc6cYMr4AfHT72s25/UCepINQoI53CKynrC3W3PC2yCHmKxJw52MFdrSZBObl3HUyPkjb3YwYKDDKAl527dmrq8yXq4YbgA45PH+W4r9USlEc0BrCUqnytH05fzFzykz9nsiwfxJGKwcjGat4m3aW80gpLgC17ss3BaMrk7mzqQvgwvLHZWsJrnjvml0wlAonz4VBiVj+AM24InpxYHV9jMQuVxtKquIYKVaN88xMU4C2QuGVLC/ltboSTk7Hejtez8r+IgQ5IdyHvvDvRbz77HrOmcjhxuT/Pm1P91bi5RS4+sVCCZTfOwar/XjcAcZ0JKt+eU3wl14ScAP4Y6J1ECeXPNEQqO0rFz4Pyger3YDd5sE/bjDg3Iqq46hD8VClX/8eosvzeCFznyMaX7msN9zZS6sZFQ0ETC3K3/pv2tQ5vzCCfCiPorMIHo6SnW1cPJDAgFEjdb+IcLHiyMV9SbhaLiw== foo@bar.com +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCrbVT3iJTuSmPrMVti8/bZ0RYxEyyNPlefeAw9wtnqpOThtlS6132CWtRcQDXiVuuId5TINJWDuavjyQWj4yININv4wkTDH+0adg/kD8v+vNIG3ighbIeehyk2FFCFM1LSJsanJmTBzAgFtNMuQZhsfd3GWu0Ly+NSs3iatDf0eCgzNhppvO7eRGFR1qSnFC92sLryFKKXIHEKQ0Huw4E51ZA0b94pxtR2x947jThDevqJsyohldxWUl+2zTKOD+reDzV3Qi1b3Tn4W5ExON3kPWMayxJcLKdOF7hB7RD/Th/eFoEdyPKdY0sHMgCTmIH3Y3vc7HTW41cgXFVOR4ClNfd/o7qHnEJJcwXxVmdNhw/pjXQAWr+EKqB6IF5E/GObkkf8ZNB/c82jrpPKDhtbEYGD8rLcJHdZCbA2LFJMUeqfVElZNeQ762K2ggPpmQ6cPuD1fP5cRDSOtuEJX+jF1T6kUifrLVJiEE06QMNis32dF4xuABtZzqEGvYsbEHYp8VtsY4ADxhICgKxiNjVzFxW/8VaXKngNDAB1U4C9dHuDVEmQ10abWClbRBW+nNm+c3+eidbLGQLBqeRSLZ9WMDebx5/yP4NxIKKcHVee3ZoAVFX1awPWVusA/FjjY2lnhgz7Lgki3Z62oVuQjYFr9f4NOaPqiAZ6lbzVHFg6qw== foo@bar.com diff --git a/sftp/ssh/key_without_passphrase b/sftp/ssh/key_without_passphrase index 8ddafca..c03d20d 100644 --- a/sftp/ssh/key_without_passphrase +++ b/sftp/ssh/key_without_passphrase @@ -1,49 +1,51 @@ ------BEGIN OPENSSH PRIVATE KEY----- -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 ------END OPENSSH PRIVATE KEY----- +-----BEGIN RSA PRIVATE KEY----- +MIIJKQIBAAKCAgEA2riYo+9+vCXacILouh5uL7/chHheDFiFnFx1BOpiwuR5b1b/ +BbmjQ/WjdxIHxZgCe4sKZXl/Nsu1ZyHspih3bGBDT5uq5duWD+DKpyHD2IF3wVm0 +ZYdR9JGEA3/zfc3X4PrKkpBZp6TrOvw8G/+U/A4frKrlXPQxfo4hTPldWTjWs9x6 +b8a5uBnNIgH9Fr/aUxb6Q/2HXKIO3SBxsfnactOiILyzvvqcQknKeMxL592HmaAn +xIQ0ZYQRUcbrmSClYa5AeCqvxTOcHC+BGEQPV7MsXEsIyafRXDRuqH+RGhyxvep4 +Kh9IAXA2ZKrVIh8yH5Q9b4LHlMIdNP6LIlMdu5aRdJ7weOe+iuHgJEG8MP1cPrHx +BZxA9iDU1VeOVMlB5pVURu8mvBymc6E6Zsybv00VCOX7HBAz1exGnYa4eykmbEAL +6B+fN8I8FlubFhv1bYC4Ne3x78K7FnGy6ZlsUDVxFIPBBHvz9kG0bwmoAgNk/qlz +ig2PHsocA+mey4TbP+Xbp/ATqsZZV9ZQ8F4ptuBOZOedtWYgMbSfWUblIkXOTzrn +kbva4/R5bpE/lnTGqydSQpiXI1F83CqbIsaNZke2O2fTxqcy+xvfoqP15km5Ql6r +XIKNVlteHKpQJjUtwFebHf9CEUHGAKR+5BBcVgAIpMibLLGJlAbZB0yVstkCAwEA +AQKCAgB4NWpW90LNP3Stz5T+7cibX7Rf7hOqb2CHjl0WJYfAG3gOVF73E48Cw9di +krtIwwHiSomdOchMImuB0ihRLf5sxv9XmnOzvxrbgS1/69PKg2WBE79M6bGGXA+V +KNZ3NxHF6bA6GzHbLI3ILmcO8Eo+ubh42rgSfXdSWeU9e/PtHIsL8UotcqgR4cRX +Q4aI4UqpzgAgLBAgPkUzDSjPq0V/RIdfvLaBaRVGbW3lNEsnlR54tYgFvq9Zd9tY ++Z302/dpFy8BnFxcYsAS0Zz+7DEOf0ALPYYH5r7vETYcT3g9RLX/bgU7CVQ2zihm +7WkURtbyejPFvLfaL1GEFb38UHgO5EL1raX4tSb9AKmDIlZdCwTYroxELLP0l62C +72AUIZG5OoENHiMbwshat4ch1VI6B0iktHdpLV0j4DTSdBQJjEu2IXv5XyrR/Va0 +V54qio7lWFjGFjO/7HyYo8OcEcQEtdcWdWF8+j8sxBVNDB5nZDCGJDCK/GH6/5hG +Zhwqw3Y5EOGGwf9fiqYTJGrc5CtVpLrkJvHdS3RlyoHXQZyyvVKssrKGTFGURsOS +7HkJs7mtjVGrqo0H/ch/JjR9Dmb0gUVUnXxMFwcEKP3BkUBxntogtEHmNTpmfh65 +yVZyPPWARnRLARWal21sGJQGfY5pYWBBbFr+CBS8hU5ac4QpXQKCAQEA8rJL14c9 +QMLULTd8hxSSPH8ySYjrkfGcxteR/cLYThryS4idxs0GbGioiwaAp92N6J59zLsa +2zXbHXjRGLLW697L/TCLGh0jT66nGfS9OWEj7U2KCT3wb3zvXEnb/ZrhcXxgMZS6 ++yOMzIxQp7hB3ecbOhIeR5bn62anXGZR07JDDerPo9JuKhWjqlAbfn4mGwwyB34p +EBxhEEvoCUtD6TEPHxHPbgUdbmw4VJSF+AdJaY4qwmSARxMBpKly0TelitoVevR5 +oJ9eGYuYa82nEMef0lGs5qe3/bOcJVK9MSjrmBIl3I7Eu9QVQFaoOKmTrOzj9gCu +2sSNT9KIlRbtLwKCAQEA5rXb3aqs0JW1L+zaDOBTubFj3HEYMUzNcEqdgFaGINU2 +xNYPwELz4r7WjT62vcc3gEprwvHMQGzzzCmACJFuiKbIjvnZDRGpYY3I/d7SN36w +VuWMKpHTBCX8m4RyNB0t9igWpeJEvj3vr3cLhEMJwM861EdkgMXHHemJZXcSHn4j +H35VbSPAaL0kQjFAdSS525Q5wa6q2kydK8t68F9vvh/R0GcrI4L4c02vWJfjM2zk +TbIP1Q5AHVnkFbFp4z1TVvLdND64X3mHKTho3janjJ0PfoWxAhqDeZxQ/82sT/oh +/5byOgW9T0g95Lp7PkIX+hkyLHHVr3XhqfomtuEudwKCAQAsNXI/RnFP9K11tx/F +82dYAcuFPZ27rgli5y2+zdldEOeF/tLOvdYntUDOYlbZPTB2aTh9LLANslfBnJpq +J1mjCaia7FbKYPhnsWbbAYvegeVreq5kVJYRmO55HzMllSrv4zoajf8pdCZXtE+U +3amR5GE/SMGfRMvmQ4LFABZzu4sfY+CC9PgAToTLp1/6wLvsPWJ3nvGX77N2pn0U +BFPQjJE2laX1YpUj4i64qX1l2t3yjmUXl/sN91ZbSkqR9dL/4g37ocDuE1muyZDw +QjvmgJaKVzppoa+QVUFiQxoXdF7GCrg+3vrTRCTC3YYzHCC8ZUJ5M1KmoxsiqTUc +A1sdAoIBAQCd3HP8AevLsZRPnaY5x0kit1FYJf5ixWWQ301T4mBWmO2n07zlViqg +zOnrrazGwEimvMVtl5ulvac33HGh6zkRweVbh3PP8HTQrn6Hz25R0JsCaoD1I+Ca +Zw+orgCizhCD7TxJ90AIWELn8fHsZx6GUoWzeMI5JpsvSXvc9JNuT+rigsQbMKpY +QItNy3uKbD3MFGlMsKJxSpkEvW96iCLimc0r51vqKZSs+MvxN8SbjHfO/fa9Vsni +C374pPOKLI0Y4ocfV4c6tOIZ/2IqIoWUvmc6sGnEwbWSgbYewnGUK9gVlghaUVEO +raTEHCF2IS1c0N628JFBRMzLTMIuwnfTAoIBAQCcp1Sj8gThpgTd64T7qjPwgylJ +UhniyEjpvpNLe++ZdE7rKqvDA2EpkxtIFxrx+c+1AsM7ZYC/TwvLR0bl+aIFOX47 ++wvPQtprTw88uUc2+9MF6vXBIRVW5dHJboEXN4izw9LG38oJ4N6SxQmSZ/L/MNaS +v+B9JjGFyXNq3bpSGJk6dlonqkFiBfwKJvm1cnb6ddCQ+cyGuYtsfK3qXWwNudFB +aYQ5p5FzVtbes3BO1lu/nyShlWywlCRBpVCYoqcc3lD6X/2CM6doqNoxDom2mm3z +2XFDP7eiAWD9VE/lomzFYZjr5pGCJqpbNzcmRMMvZC+cd/CLWds/7wAkVDWu +-----END RSA PRIVATE KEY----- diff --git a/sftp/ssh/key_without_passphrase.pub b/sftp/ssh/key_without_passphrase.pub index 507e117..a3a1337 100644 --- a/sftp/ssh/key_without_passphrase.pub +++ b/sftp/ssh/key_without_passphrase.pub @@ -1 +1 @@ -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDRwHFffYc0Sb8Lnx1YEpC4+9xw6jXUDHI08+iYZ57i5xqyB86Wgd0uHUj9ZaZWUBfQuVbgSuuDM9ORB5W5w1y53ucL75LMJZFGJHO2xoPVvtM4proifBqeqXEuJ9Su1axd9igrBnZ9153bzDN4wwI1JVXdGGj9wdWNP0ILMrTkVaDs8LhsTW+YyatlnGeHFlubhwkxNWtOTsZml2kuVg3vlRQs0/+hLGngxXJq7WldLOAGICs1nIXkR8ZCs+FPAcCixXlOaLSxfa387IhU5dtTUp3mHGavJYlMkLA4JmioQLPBe7ISLDn3yZJWD3Lzsme6qBT9VICQs0nWhziCf2kpXfhTh1mumiRU4kHc0aFwNRRNwF6XuAdfev2Xt6mRqUBQPnEIUEFJpL9rSKk3FHTBUUtG96gWEhHMHB6cpJ51f9s+r2B0pxBCUYL3ZiUYhlI/tH6RJ0AwT7OluDx204c/ebBQj3yHRMOYPAoDyztPfFjFW9Np4PSTqEvscZeRS/iiI5/BZL9O0sJh6hRPw/KqZHl3na8uWkEIK9gg9eQljEJ9UdZHC6qJiTi/laO61yGT4d1QMbPOYaFtVKUUYGCJ0gEZTM/D60tBrHGvzkDXKbR23nTSSM9zJdFJr/bQhELeyJtceWhwvcGyG9+ZVYMTHTjJAuq8gvZW1RJBhlY5BQ== foo@bar.com +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDauJij7368Jdpwgui6Hm4vv9yEeF4MWIWcXHUE6mLC5HlvVv8FuaND9aN3EgfFmAJ7iwpleX82y7VnIeymKHdsYENPm6rl25YP4MqnIcPYgXfBWbRlh1H0kYQDf/N9zdfg+sqSkFmnpOs6/Dwb/5T8Dh+squVc9DF+jiFM+V1ZONaz3Hpvxrm4Gc0iAf0Wv9pTFvpD/Ydcog7dIHGx+dpy06IgvLO++pxCScp4zEvn3YeZoCfEhDRlhBFRxuuZIKVhrkB4Kq/FM5wcL4EYRA9XsyxcSwjJp9FcNG6of5EaHLG96ngqH0gBcDZkqtUiHzIflD1vgseUwh00/osiUx27lpF0nvB4576K4eAkQbww/Vw+sfEFnED2INTVV45UyUHmlVRG7ya8HKZzoTpmzJu/TRUI5fscEDPV7Eadhrh7KSZsQAvoH583wjwWW5sWG/VtgLg17fHvwrsWcbLpmWxQNXEUg8EEe/P2QbRvCagCA2T+qXOKDY8eyhwD6Z7LhNs/5dun8BOqxllX1lDwXim24E5k5521ZiAxtJ9ZRuUiRc5POueRu9rj9HlukT+WdMarJ1JCmJcjUXzcKpsixo1mR7Y7Z9PGpzL7G9+io/XmSblCXqtcgo1WW14cqlAmNS3AV5sd/0IRQcYApH7kEFxWAAikyJsssYmUBtkHTJWy2Q== foo@bar.com